UNPKG

jsonblade

Version:

A powerful and modular JSON template engine with extensible filters

64 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logicFilters = void 0; exports.registerLogicFilters = registerLogicFilters; const filter_registry_1 = require("../filter-registry"); const logicFilters = { equals: (v, ...args) => { const val = args[0]; const compareVal = !isNaN(Number(val)) ? Number(val) : val; return v === compareVal; }, not: (v) => !v, bool: (v) => Boolean(v), gt: (v, ...args) => { const compareVal = Number(args[0]); return Number(v) > compareVal; }, gte: (v, ...args) => { const compareVal = Number(args[0]); return Number(v) >= compareVal; }, lt: (v, ...args) => { const compareVal = Number(args[0]); return Number(v) < compareVal; }, lte: (v, ...args) => { const compareVal = Number(args[0]); return Number(v) <= compareVal; }, contains: (v, ...args) => { const searchVal = args[0]; if (typeof v === "string") { return v.includes(String(searchVal)); } if (Array.isArray(v)) { return v.includes(searchVal); } return false; }, startsWith: (v, ...args) => { const prefix = args[0]; return String(v).startsWith(String(prefix)); }, endsWith: (v, ...args) => { const suffix = args[0]; return String(v).endsWith(String(suffix)); }, isEmpty: (v) => { if (v == null) return true; if (typeof v === "string" || Array.isArray(v)) return v.length === 0; if (typeof v === "object") return Object.keys(v).length === 0; return false; }, }; exports.logicFilters = logicFilters; function registerLogicFilters() { Object.entries(logicFilters).forEach(([name, fn]) => { (0, filter_registry_1.registerFilter)(name, fn); }); } //# sourceMappingURL=logic-filters.js.map