UNPKG

mingo

Version:

MongoDB query language for in-memory objects

18 lines (17 loc) 675 B
import { computeValue } from "../../../core/_internal"; import { assert, HashMap, isArray, isNil } from "../../../util"; const $setDifference = (obj, expr, options) => { const args = computeValue(obj, expr, null, options); if (isNil(args)) return null; assert(isArray(args), "$setDifference must be an arrays."); if (args.some(isNil)) return null; assert(args.length == 2, `$setDifference takes exactly 2 arguments.`); assert(args.every(isArray), "$setDifference operands must be arrays."); const m = HashMap.init(); args[0].forEach((v) => m.set(v, true)); args[1].forEach((v) => m.delete(v)); return Array.from(m.keys()); }; export { $setDifference };