UNPKG

vulcain-corejs

Version:
54 lines (52 loc) 1.43 kB
"use strict"; const Models = "models"; const Services = "services"; const Handlers = "handlers"; class Preloader { constructor() { this._preloads = {}; } static get instance() { if (!Preloader._instance) { Preloader._instance = new Preloader(); } return Preloader._instance; } registerModel(fn, callback) { let key = fn.name; this.register(Models, key, callback); } registerService(fn, callback) { let key = fn.name; this.register(Services, key, callback); } registerHandler(fn, callback) { let key = fn.name; this.register(Handlers, key, callback); } register(key, name, fn) { let list = this._preloads[key]; if (!list) { this._preloads[key] = list = []; } list.push({ name, callback: fn }); } run(key, container, domain) { let items = this._preloads[key]; if (!items) return; for (const item of items) { item.callback(container, domain); } } runPreloads(container, domain) { if (this._preloads) { this.run(Models, container, domain); this.run(Services, container, domain); this.run(Handlers, container, domain); this._preloads = {}; } } } exports.Preloader = Preloader; //# sourceMappingURL=preloader.js.map