jsonblade
Version:
A powerful and modular JSON template engine with extensible filters
46 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.asyncFilterRegistry = void 0;
exports.registerAsyncFilter = registerAsyncFilter;
exports.getAsyncFilter = getAsyncFilter;
exports.hasAsyncFilter = hasAsyncFilter;
class AsyncFilterRegistry {
constructor() {
this.asyncFilters = {};
}
registerAsyncFilter(name, fn) {
this.asyncFilters[name] = fn;
}
getAsyncFilter(name) {
return this.asyncFilters[name];
}
hasAsyncFilter(name) {
return name in this.asyncFilters;
}
getAllAsyncFilters() {
return { ...this.asyncFilters };
}
unregisterAsyncFilter(name) {
if (this.hasAsyncFilter(name)) {
delete this.asyncFilters[name];
return true;
}
return false;
}
registerAsyncFilters(filters) {
Object.entries(filters).forEach(([name, fn]) => {
this.registerAsyncFilter(name, fn);
});
}
}
exports.asyncFilterRegistry = new AsyncFilterRegistry();
function registerAsyncFilter(name, fn) {
exports.asyncFilterRegistry.registerAsyncFilter(name, fn);
}
function getAsyncFilter(name) {
return exports.asyncFilterRegistry.getAsyncFilter(name);
}
function hasAsyncFilter(name) {
return exports.asyncFilterRegistry.hasAsyncFilter(name);
}
//# sourceMappingURL=async-filter-registry.js.map