UNPKG

@mcabreradev/filter

Version:

A powerful, SQL-like array filtering library for TypeScript and JavaScript with advanced pattern matching, MongoDB-style operators, deep object comparison, and zero dependencies

30 lines 1.19 kB
import { createPredicateFn } from '../predicate'; export const applyLogicalOperators = (item, operator, expressions, config) => { switch (operator) { case '$and': if (!Array.isArray(expressions)) { throw new Error('$and operator requires an array of expressions'); } return expressions.every((expr) => { const predicate = createPredicateFn(expr, config); return predicate(item); }); case '$or': if (!Array.isArray(expressions)) { throw new Error('$or operator requires an array of expressions'); } return expressions.some((expr) => { const predicate = createPredicateFn(expr, config); return predicate(item); }); case '$not': if (Array.isArray(expressions)) { throw new Error('$not operator requires a single expression'); } const predicate = createPredicateFn(expressions, config); return !predicate(item); default: return true; } }; //# sourceMappingURL=logical.operators.js.map