in api/Serialization.ts [256:298]
function _getTranslatedEnumValue(enumType: ContractEnumMetadata, valueToConvert: any, serialize: boolean): any {
if (serialize && typeof valueToConvert === "number") {
// Serialize: number --> String
// Because webapi handles the numerical value for enums, there is no need to convert to string.
// Let this fall through to return the numerical value.
}
else if (!serialize && typeof valueToConvert === "string") {
// Deserialize: String --> number
var result = 0;
if (valueToConvert) {
var splitValue = valueToConvert.split(",");
for(var i = 0; i < splitValue.length; i++) {
var valuePart = splitValue[i];
//equivalent to jquery trim
//copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/trim/ie8.js
var enumName = valuePart.replace(/^\s+|\s+$/g, '') || "";
if (enumName) {
var resultPart = enumType.enumValues[enumName];
if (!resultPart) {
// No matching enum value. Try again but case insensitive
var lowerCaseEnumName = enumName.toLowerCase();
if (lowerCaseEnumName !== enumName) {
for(var name in enumType.enumValues) {
var value = enumType.enumValues[name];
if (name.toLowerCase() === lowerCaseEnumName) {
resultPart = value;
break;
}
}
}
}
if (resultPart) {
result |= resultPart;
}
}
}
}
return result;
}
return valueToConvert;
}