jsonblade
Version:
A powerful and modular JSON template engine with extensible filters
42 lines • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.filterRegistry = void 0;
exports.registerFilter = registerFilter;
exports.getFilter = getFilter;
class FilterRegistry {
constructor() {
this.filters = {};
}
registerFilter(name, fn) {
this.filters[name] = fn;
}
getFilter(name) {
return this.filters[name];
}
hasFilter(name) {
return name in this.filters;
}
getAllFilters() {
return { ...this.filters };
}
unregisterFilter(name) {
if (this.hasFilter(name)) {
delete this.filters[name];
return true;
}
return false;
}
registerFilters(filters) {
Object.entries(filters).forEach(([name, fn]) => {
this.registerFilter(name, fn);
});
}
}
exports.filterRegistry = new FilterRegistry();
function registerFilter(name, fn) {
exports.filterRegistry.registerFilter(name, fn);
}
function getFilter(name) {
return exports.filterRegistry.getFilter(name);
}
//# sourceMappingURL=filter-registry.js.map