UNPKG

@ackplus/nest-dynamic-templates

Version:

Dynamic template management for NestJS applications

131 lines 6.06 kB
"use strict"; var NestDynamicTemplatesModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.NestDynamicTemplatesModule = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const typeorm_1 = require("@nestjs/typeorm"); const template_entity_1 = require("./entities/template.entity"); const template_layout_entity_1 = require("./entities/template-layout.entity"); const deepmerge_1 = tslib_1.__importDefault(require("deepmerge")); const template_engine_registry_1 = require("./services/template-engine.registry"); const template_layout_service_1 = require("./services/template-layout.service"); const template_service_1 = require("./services/template.service"); const template_config_service_1 = require("./services/template-config.service"); const constant_1 = require("./constant"); const template_types_1 = require("./interfaces/template.types"); const template_types_2 = require("./interfaces/template.types"); const defaultConfig = { engines: { template: [template_types_1.TemplateEngineEnum.NUNJUCKS], language: [template_types_2.TemplateLanguageEnum.HTML, template_types_2.TemplateLanguageEnum.MJML, template_types_2.TemplateLanguageEnum.TEXT] } }; let NestDynamicTemplatesModule = NestDynamicTemplatesModule_1 = class NestDynamicTemplatesModule { static forRoot(config = {}) { const mergedConfig = this.getOptions(config); template_config_service_1.TemplateConfigService.setOptions(mergedConfig); return { module: NestDynamicTemplatesModule_1, global: mergedConfig.isGlobal, imports: [ typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout]), ], providers: [ template_config_service_1.TemplateConfigService, template_engine_registry_1.TemplateEngineRegistryService, template_layout_service_1.TemplateLayoutService, template_service_1.TemplateService, ], exports: [ template_config_service_1.TemplateConfigService, template_service_1.TemplateService, template_layout_service_1.TemplateLayoutService, ], }; } static forRootAsync(options) { const asyncProviders = this.createAsyncProviders(options); return { module: NestDynamicTemplatesModule_1, global: options.isGlobal, imports: [ typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout]), ...(options.imports || []), ], providers: [ ...asyncProviders, template_config_service_1.TemplateConfigService, template_engine_registry_1.TemplateEngineRegistryService, template_layout_service_1.TemplateLayoutService, template_service_1.TemplateService, ], exports: [ template_config_service_1.TemplateConfigService, template_service_1.TemplateService, template_layout_service_1.TemplateLayoutService, ], }; } static createAsyncProviders(options) { if (options.useExisting || options.useFactory) { return [this.createAsyncOptionsProvider(options)]; } if (options.useClass) { return [ this.createAsyncOptionsProvider(options), { provide: options.useClass, useClass: options.useClass, }, ]; } return []; } static createAsyncOptionsProvider(options) { if (options.useFactory) { return { provide: constant_1.NEST_DYNAMIC_TEMPLATES_ASYNC_OPTIONS_PROVIDER, useFactory: async (...args) => { const userOptions = await options.useFactory(...args); const mergedOptions = this.getOptions(userOptions); template_config_service_1.TemplateConfigService.setOptions(mergedOptions); return mergedOptions; }, inject: options.inject || [], }; } return { provide: constant_1.NEST_DYNAMIC_TEMPLATES_ASYNC_OPTIONS_PROVIDER, useFactory: async (optionsFactory) => { const userOptions = await optionsFactory.createNestDynamicTemplatesModuleOptions(); const mergedOptions = this.getOptions(userOptions); template_config_service_1.TemplateConfigService.setOptions(mergedOptions); return mergedOptions; }, inject: [options.useExisting || options.useClass], }; } static getOptions(options) { return (0, deepmerge_1.default)(this.moduleDefaultOptions, options); } }; exports.NestDynamicTemplatesModule = NestDynamicTemplatesModule; NestDynamicTemplatesModule.moduleDefaultOptions = defaultConfig; exports.NestDynamicTemplatesModule = NestDynamicTemplatesModule = NestDynamicTemplatesModule_1 = tslib_1.__decorate([ (0, common_1.Module)({ imports: [typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout])], providers: [ template_config_service_1.TemplateConfigService, template_engine_registry_1.TemplateEngineRegistryService, template_layout_service_1.TemplateLayoutService, template_service_1.TemplateService, ], exports: [ template_config_service_1.TemplateConfigService, template_service_1.TemplateService, template_layout_service_1.TemplateLayoutService, ], }) ], NestDynamicTemplatesModule); //# sourceMappingURL=nest-dynamic-templates.module.js.map