@sqb/builder
Version:
Extensible multi-dialect SQL query builder written with TypeScript
39 lines (38 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SerializerRegistry = void 0;
class SerializerRegistry {
static serializers = [];
static get size() {
return this.serializers.length;
}
static register(...extension) {
for (const ext of extension) {
if (!ext.dialect)
throw new TypeError('A SerializerExtension must contain "dialect" property');
this.serializers.push(ext);
}
}
static forEach(callback, thisArg) {
return this.serializers.forEach(callback, thisArg);
}
static items() {
return this.serializers.values();
}
static unRegister(...extensions) {
this.serializers = this.serializers.filter(x => !extensions.includes(x));
}
static getAll(dialect) {
return this.serializers.filter(x => x.dialect === dialect);
}
static get(index) {
return this.serializers[index];
}
static findDialect(dialect) {
return this.serializers.find(x => x.dialect === dialect);
}
static has(extension) {
return !!this.serializers.find(x => x === extension);
}
}
exports.SerializerRegistry = SerializerRegistry;