UNPKG

mingo

Version:

MongoDB query language for in-memory objects

20 lines (19 loc) 664 B
import { computeValue } from "../../../core/_internal"; import { Lazy } from "../../../lazy"; import { assert, compare, isArray, isNil, isObject } from "../../../util"; import { $sort } from "../../pipeline/sort"; const $sortArray = (obj, expr, options) => { const { input, sortBy } = computeValue(obj, expr, null, options); if (isNil(input)) return null; assert(isArray(input), "$sortArray expression must resolve to an array"); if (isObject(sortBy)) { return $sort(Lazy(input), sortBy, options).collect(); } const result = input.slice(); result.sort(compare); if (sortBy === -1) result.reverse(); return result; }; export { $sortArray };