UNPKG

@react-querybuilder/core

Version:

React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts

47 lines (45 loc) 1.8 kB
const require_isRuleGroup = require('./isRuleGroup-DqAs2x4E.js'); let immer = require("immer"); immer = require_isRuleGroup.__toESM(immer); //#region src/utils/transformQuery.ts const remapProperties = (obj, propertyMap, deleteRemappedProperties) => (0, immer.produce)(obj, (draft) => { for (const [k, v] of Object.entries(propertyMap)) if (v === false) delete draft[k]; else if (!!v && k !== v && k in draft) { draft[v] = draft[k]; if (deleteRemappedProperties) delete draft[k]; } }); function transformQuery(query, options = {}) { const { ruleProcessor = (r) => r, ruleGroupProcessor = (rg) => rg, propertyMap = {}, combinatorMap = {}, operatorMap = {}, omitPath = false, deleteRemappedProperties = true } = options; const processGroup = (rg) => ({ ...ruleGroupProcessor(remapProperties({ ...rg, ...require_isRuleGroup.isRuleGroupType(rg) ? { combinator: combinatorMap[rg.combinator] ?? rg.combinator } : {} }, propertyMap, deleteRemappedProperties)), ...propertyMap["rules"] === false ? null : { [propertyMap["rules"] ?? "rules"]: rg.rules.map((r, idx) => { const pathObject = omitPath ? null : { path: [...rg.path, idx] }; if (typeof r === "string") return combinatorMap[r] ?? r; else if (require_isRuleGroup.isRuleGroup(r)) return processGroup({ ...r, ...pathObject }); return ruleProcessor(remapProperties({ ...r, ...pathObject, ..."operator" in r ? { operator: operatorMap[r.operator] ?? r.operator } : {} }, propertyMap, deleteRemappedProperties)); }) } }); return processGroup({ ...query, ...omitPath ? null : { path: [] } }); } //#endregion Object.defineProperty(exports, 'transformQuery', { enumerable: true, get: function () { return transformQuery; } }); //# sourceMappingURL=transformQuery-CWDPogO5.js.map