UNPKG

@sqb/builder

Version:

Extensible multi-dialect SQL query builder written with TypeScript

35 lines (34 loc) 1.07 kB
export 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); } }