jsonblade
Version:
A powerful and modular JSON template engine with extensible filters
47 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.objectFilters = void 0;
exports.registerObjectFilters = registerObjectFilters;
const filter_registry_1 = require("../filter-registry");
const objectFilters = {
json: (v) => JSON.stringify(v),
keys: (v) => {
if (v && typeof v === "object" && !Array.isArray(v)) {
return Object.keys(v);
}
return [];
},
values: (v) => {
if (v && typeof v === "object" && !Array.isArray(v)) {
return Object.values(v);
}
return [];
},
get: (v, ...args) => {
const key = args[0];
if (v && typeof v === "object" && key) {
return v[key];
}
return null;
},
has: (v, ...args) => {
const key = args[0];
if (v && typeof v === "object" && key) {
return key in v;
}
return false;
},
entries: (v) => {
if (v && typeof v === "object" && !Array.isArray(v)) {
return Object.entries(v);
}
return [];
},
};
exports.objectFilters = objectFilters;
function registerObjectFilters() {
Object.entries(objectFilters).forEach(([name, fn]) => {
(0, filter_registry_1.registerFilter)(name, fn);
});
}
//# sourceMappingURL=object-filters.js.map