UNPKG

@ribajs/core

Version:

Core module of Riba.js

42 lines (35 loc) 842 B
import { Binders, ModuleElementType, ClassOfBinder } from "../types/index.js"; import { ModuleElementService } from "./module-element.service.js"; /** * */ export class BindersService extends ModuleElementService<ClassOfBinder> { protected type: ModuleElementType = "binder"; /** * * @param binders; */ constructor(binders: Binders) { super(binders); } /** * Regist a binder */ public register( Binder: ClassOfBinder, fallbackName?: string, forceFallback = false, ) { if (!Binder) { throw new Error("No Binder passed to register!"); } const name = forceFallback ? fallbackName || Binder.key : Binder.key || fallbackName; if (!name) { throw new Error("Binder name not found!"); } this.elements[name] = Binder; return this.elements; } }