@hashuplabs/omni-filter
Version:
OmniFilter Search component
41 lines • 1.36 kB
JavaScript
import OmniBuiltinTypes from '../types/OmniBuiltinTypes';
var OmniFilterRegistry = /** @class */ (function () {
function OmniFilterRegistry() {
this._registry = {};
}
OmniFilterRegistry.instance = function () {
if (this._instance === null) {
this._instance = new OmniFilterRegistry();
}
return this._instance;
};
OmniFilterRegistry.prototype.register = function (key, filter) {
this._registry[key] = filter;
return this;
};
OmniFilterRegistry.prototype.get = function (key) {
if (!this._registry[key]) {
throw Error('Invalid Filter Key');
}
return this._registry[key];
};
OmniFilterRegistry.prototype.exists = function (key) {
return !!this._registry[key];
};
OmniFilterRegistry.prototype.set = function (key, filter) {
return this.register(key, filter);
};
OmniFilterRegistry.prototype.all = function () {
return this._registry;
};
OmniFilterRegistry._instance = null;
return OmniFilterRegistry;
}());
export default function OmniFilterFactory() {
return OmniFilterRegistry.instance();
}
// Register Builtins //
Object.keys(OmniBuiltinTypes).forEach(function (k) {
OmniFilterFactory().register(k, OmniBuiltinTypes[k]);
});
//# sourceMappingURL=OmniFilterRegistry.js.map