mingo
Version:
MongoDB query language for in-memory objects
21 lines (20 loc) • 620 B
JavaScript
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
};