createOrderByClause()

in salesforce/lib/query-builder.js [226:266]


    createOrderByClause(sort) {
        sort = sort || [];
        if (_.isString(sort)) {
            if (/,|\s+(asc|desc)\s*$/.test(sort)) {
                return sort;
            }
            // sort order in "FieldA -FieldB" => "ORDER BY FieldA ASC, FieldB DESC".
            sort = sort.split(/\s+/).map((field) => {
                let dir = "ASC";
                let flag = field[0];
                if (flag === "-") {
                    dir = "DESC";
                    field = field.substring(1);
                } else if (flag === "+") {
                    field = field.substring(1);
                }
                return [field, dir];
            });
        } else if (!isArray(sort)) {
            sort = _.keys(sort).map((field) => {
                let dir = sort[field];
                return [field, dir];
            });
        }
        return sort.map((s) => {
            let field = s[0];
            let dir = s[1];
            switch (String(dir)) {
                case "DESC":
                case "desc":
                case "descending":
                case "-":
                case "-1":
                    dir = "DESC";
                    break;
                default:
                    dir = "ASC";
            }
            return field + " " + dir;
        }).join(", ");
    }