createFieldExpression()

in salesforce/lib/query-builder.js [164:191]


    createFieldExpression(field, value) {
        let op = "$eq";

        // Assume the `$in` operator if value is an array and none was supplied.
        if (_.isArray(value)) {
            op = "$in";
        } else if (_.isObject(value)) {
            for (let k in value) {
                if (k[0] === "$") {
                    op = k;
                    value = value[k];
                    break;
                }
            }
        }
        let sfop = opMap[op];
        if (!sfop || _.isUndefined(value)) { return null; }
        let valueExpr = this.createValueExpression(value);
        if (_.isUndefined(valueExpr)) { return null; }
        switch (sfop) {
            case "NOT LIKE":
                return "(" + ["NOT", field, "LIKE", valueExpr].join(" ") + ")";
            case "EXISTS":
                return [field, value ? "!=" : "=", "null"].join(" ");
            default:
                return [field, sfop, valueExpr].join(" ");
        }
    }