in Source/SiteCommon/Web/services/init-parser.ts [133:184]
private static getVariableType(value: any): Variable {
let variable: Variable = new Variable();
if (!value) {
variable.type = VariableType.Static;
variable.value = value;
return variable;
} else if (Array.isArray(value)) {
for (let i = 0; i < value.length; i++) {
value[i] = this.translateInitValue(value[i]);
}
} else if (typeof value === 'object') {
for (let key in value) {
if (value.hasOwnProperty(key)) {
if (Array.isArray(value[key])) {
for (let i = 0; i < value[key].length; i++) {
value[key][i] = this.translateInitValue(value[key][i]);
}
} else {
value[key] = this.translateInitValue(value[key]);
}
}
}
}
let ciValue: string = value.toString().toLowerCase();
variable.type = VariableType.NotValid;
if (ciValue[0] !== '$') {
variable.type = VariableType.Static;
variable.value = value;
} else if (/^\$ds\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.DataStoreGetFirst, '$ds(');
} else if (/^\$dsall\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.DataStoreGetAll, '$dsall(');
} else if (/^\$run\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.Run, '$run(');
} else if (/^\$isfalse\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.RunAndTestFalse, '$isfalse(');
} else if (/^\$istrue\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.RunAndTestTrue, '$istrue(');
} else if (/^\$translate\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.RunAndTranslate, '$translate(');
} else if (/^\$\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.RunAndSaveOld, '$(');
} else if (/^\$save\(.*\)/.test(ciValue)) {
this.processInitValue(value, variable, VariableType.RunAndSave, '$save(');
}
return variable;
}