UNPKG

mingo

Version:

MongoDB query language for in-memory objects

26 lines (25 loc) 538 B
import { isEqual } from "../../util"; import { applyUpdate, clone, DEFAULT_OPTIONS, walkExpression } from "./_internal"; const $set = (obj, expr, arrayFilters = [], options = DEFAULT_OPTIONS) => { return walkExpression(expr, arrayFilters, options, (val, node, queries) => { return applyUpdate( obj, node, queries, (o, k) => { if (isEqual(o[k], val)) return false; o[k] = clone(val, options); return true; }, { buildGraph: true } ); }); }; export { $set };