UNPKG

zents

Version:

ZenTS is a Node.js & TypeScript MVC-Framework for building rich web applications, released as free and open-source software under the MIT License. It is designed for building web applications with modern tools and design patterns.

56 lines 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AutoLoader = void 0; const ControllerLoader_1 = require("../controller/ControllerLoader"); const DatabaseContainer_1 = require("../database/DatabaseContainer"); const EmailTemplateLoader_1 = require("../email/EmailTemplateLoader"); const EntityLoader_1 = require("../database/EntityLoader"); const Registry_1 = require("./Registry"); const SecurityProviderLoader_1 = require("../security/SecurityProviderLoader"); const ServiceLoader_1 = require("../service/ServiceLoader"); const TemplateEngineLoader_1 = require("../template/TemplateEngineLoader"); const createConnection_1 = require("../database/createConnection"); const createRedisClient_1 = require("../database/createRedisClient"); class AutoLoader { async createRegistry() { const [controllers, services, templateData, emailTemplates, entities, connection, redisClient,] = await Promise.all([ this.loadControllers(), this.loadServices(), this.loadTemplateData(), this.loadEmailTemplates(), this.loadEntities(), createConnection_1.createConnection(), createRedisClient_1.createRedisClient(), ]); const databaseContainer = new DatabaseContainer_1.DatabaseContainer(connection, redisClient); const securityProviders = this.loadSecurityProviders(entities, databaseContainer); const registry = new Registry_1.Registry(controllers, services, templateData, emailTemplates, databaseContainer, entities, securityProviders); return registry; } loadSecurityProviders(entities, databaseContainer) { const securityProviderLoader = new SecurityProviderLoader_1.SecurityProviderLoader(); return securityProviderLoader.load(entities, databaseContainer); } async loadControllers() { const controllerLoader = new ControllerLoader_1.ControllerLoader(); return await controllerLoader.load(); } async loadServices() { const serviceLoader = new ServiceLoader_1.ServiceLoader(); return await serviceLoader.load(); } async loadTemplateData() { const templateEngineLoader = new TemplateEngineLoader_1.TemplateEngineLoader(); return await templateEngineLoader.load(); } async loadEntities() { const entityLoader = new EntityLoader_1.EntityLoader(); return await entityLoader.load(); } async loadEmailTemplates() { const emailTemplateLoader = new EmailTemplateLoader_1.EmailTemplateLoader(); return await emailTemplateLoader.load(); } } exports.AutoLoader = AutoLoader; //# sourceMappingURL=AutoLoader.js.map