UNPKG

laravel-jstools

Version:

JS tools for building front-side of Laravel applications

57 lines (56 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AppLocator = void 0; const ServiceContainer_1 = require("../di/ServiceContainer"); const AppServiceProvider_1 = require("./providers/AppServiceProvider"); const JSToolsAbstractMap_1 = require("./JSToolsAbstractMap"); class AppLocator { constructor(globalData) { this.providerList = []; this.globalData = globalData; this.serviceContainer = new ServiceContainer_1.ServiceContainer(); this.registerProvider(new AppServiceProvider_1.AppServiceProvider()); } registerProvider(provider) { provider.setAppData(this.globalData); provider.register(); this.providerList.push(provider); this.generateMaps(); } make(name) { return this.serviceContainer.make(name); } makeEntity(name, entityType, params) { return this.serviceContainer.makeEntity(name, entityType, params); } form(formId, formData, showNoty, componentsOptions, entityType) { return this.makeEntity(JSToolsAbstractMap_1.JSToolsAbstractMap.FormContract, entityType, { formId, formData, showNoty, componentsOptions, }); } modal(modalId, modalUsage, modalData, showNoty, tools, entityType) { return this.makeEntity(JSToolsAbstractMap_1.JSToolsAbstractMap.ModalContract, entityType, { modalId, modalUsage, modalData, showNoty, tools, }); } noty(data) { this.make(JSToolsAbstractMap_1.JSToolsAbstractMap.NotyServiceContract).show(data); } generateMaps() { let classMap = {}; let aliasMap = {}; this.providerList.forEach((provider, i, arr) => { classMap = Object.assign(classMap, provider.getClassMap()); aliasMap = Object.assign(aliasMap, provider.getAliasMap()); }); this.serviceContainer.setMaps(classMap, aliasMap); } } exports.AppLocator = AppLocator;