private static getVariableType()

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;
    }