UNPKG

scim2-filter

Version:
37 lines 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.valfilter = (f, path) => { if (path && "attrPath" in f) { f = Object.assign(Object.assign({}, f), { attrPath: `${path}.${f.attrPath}` }); } switch (f.op) { case "and": case "or": return Object.assign(Object.assign({}, f), { filters: f.filters.map(c => exports.valfilter(c, path)) }); case "not": return Object.assign(Object.assign({}, f), { filter: exports.valfilter(f, path) }); case "[]": return exports.valfilter(f.valFilter, f.attrPath); } return f; }; // 1 and 2 or (1 or b) => 1 and 2 or 1 or b exports.log = (f) => { switch (f.op) { case "and": case "or": const filters = f.filters.map(exports.log); const result = []; filters.forEach(c => { if (c.op == f.op) { c.filters.forEach(cc => result.push(cc)); } else { result.push(c); } }); return Object.assign(Object.assign({}, f), { filters: result }); } return f; }; //# sourceMappingURL=flatten.js.map