UNPKG

@enonic/js-utils

Version:
42 lines (40 loc) 1.03 kB
// storage/query/sort.ts var ASC = "ASC"; var DESC = "DESC"; var SORT_CREATED = `createdTime ${DESC}`; var SORT_DISPLAYNAME = `displayName ${ASC}`; var SORT_MANUAL = `_manualordervalue ${DESC}, _timestamp ${DESC}`; var SORT_MODIFIED = `modifiedTime ${DESC}`; function isDirection(s) { return s === ASC || s === DESC; } // storage/query/dsl/sort.ts function sort(...args) { const sort2 = []; let param = {}; for (let i = 0; i < args.length; i++) { const arg = args[i]; if (isDirection(arg)) { if (!param.field || param.direction) { throw new Error(`sort: direction:${arg} is optional, but must come after field parameter!`); } param.direction = arg; } else { if (param.field) { sort2.push(JSON.parse(JSON.stringify(param))); param = { field: arg }; } else { param.field = arg; } } if (i === args.length - 1) { sort2.push(param); } } return sort2.length === 1 ? sort2[0] : sort2; } export { sort };