in api/Serialization.ts [135:155]
function _getTranslatedObject(typeObject: any, typeMetadata: ContractMetadata, serialize: boolean, preserveOriginal: boolean) {
var processedItem = typeObject,
copiedItem = false;
if (typeObject && typeMetadata.fields) {
for (var fieldName in typeMetadata.fields) {
var fieldMetadata = typeMetadata.fields[fieldName];
var fieldValue = typeObject[fieldName];
var translatedValue = _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal);
if (fieldValue !== translatedValue) {
if (preserveOriginal && !copiedItem) {
processedItem = this._extend({}, typeObject);
copiedItem = true;
}
processedItem[fieldName] = translatedValue;
}
}
}
return processedItem;
}