UNPKG

mingo

Version:

MongoDB query language for in-memory objects

21 lines (20 loc) 620 B
import { evalExpr } from "../../../core/_internal"; import { assert, isArray, isInteger, isNil } from "../../../util"; import { errInvalidArgs } from "../_internal"; function processBitwise(obj, expr, options, operator, fn) { assert(isArray(expr), `${operator} expects array as argument`); const nums = evalExpr(obj, expr, options); let t_num = true; for (const v of nums) { if (isNil(v)) return null; t_num &&= isInteger(v); } if (t_num) return fn(nums); return errInvalidArgs( options.failOnError, `${operator} array elements must resolve to integers` ); } export { processBitwise };