UNPKG

mingo

Version:

MongoDB query language for in-memory objects

15 lines (14 loc) 563 B
import { computeValue } from "../../../core/_internal"; import { assert, isArray, typeOf } from "../../../util"; const $subtract = (obj, expr, options) => { const args = computeValue(obj, expr, null, options); const errMsg = "$subtract: must resolve to array(2) of numbers/dates"; assert(isArray(args) && args.length === 2, errMsg); const t = args.map(typeOf).join("|"); if (t === "date|number") return new Date(+args[0] - +args[1]); assert(t === "date|date" || t === "number|number", errMsg); return +args[0] - +args[1]; }; export { $subtract };