@ackplus/nest-dynamic-templates 0.1.51 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +6 -284
  2. package/eslint.config.mjs +22 -0
  3. package/jest.config.ts +10 -0
  4. package/package.json +7 -58
  5. package/project.json +38 -0
  6. package/src/{index.d.ts → index.ts} +14 -1
  7. package/src/lib/constant.ts +2 -0
  8. package/src/lib/dto/create-template-layout.dto.ts +65 -0
  9. package/src/lib/dto/create-template.dto.ts +80 -0
  10. package/src/lib/dto/render-content-template-layout.dto.ts +32 -0
  11. package/src/lib/dto/render-content-template.dto.ts +37 -0
  12. package/src/lib/dto/render-template-layout.dto.ts +55 -0
  13. package/src/lib/dto/render-template.dto.ts +74 -0
  14. package/src/lib/dto/template-filter.dto.ts +52 -0
  15. package/src/lib/dto/template-layout-filter.dto.ts +51 -0
  16. package/src/lib/engines/language/html.engine.ts +49 -0
  17. package/src/lib/engines/language/markdown.engine.ts +37 -0
  18. package/src/lib/engines/language/mjml.engine.ts +44 -0
  19. package/src/lib/engines/language/text.engine.ts +15 -0
  20. package/src/lib/engines/{language-engine.d.ts → language-engine.ts} +7 -1
  21. package/src/lib/engines/template/ejs.engine.ts +33 -0
  22. package/src/lib/engines/template/handlebars.engine.ts +35 -0
  23. package/src/lib/engines/template/nunjucks.engine.ts +70 -0
  24. package/src/lib/engines/template/pug.engine.ts +43 -0
  25. package/src/lib/engines/{template-engine.d.ts → template-engine.ts} +6 -1
  26. package/src/lib/entities/template-layout.entity.ts +99 -0
  27. package/src/lib/entities/template.entity.ts +105 -0
  28. package/src/lib/errors/{template.errors.js → template.errors.ts} +20 -23
  29. package/src/lib/interfaces/{module-config.interface.d.ts → module-config.interface.ts} +16 -1
  30. package/src/lib/interfaces/template.types.ts +25 -0
  31. package/src/lib/nest-dynamic-templates.module.ts +143 -0
  32. package/src/lib/services/template-config.service.ts +112 -0
  33. package/src/lib/services/template-engine.registry.ts +109 -0
  34. package/src/lib/services/template-layout.service.ts +407 -0
  35. package/src/lib/services/template.service.ts +476 -0
  36. package/src/test/{helpers.js → helpers.ts} +5 -8
  37. package/src/test/nunjucks.service.spec.ts +157 -0
  38. package/src/test/pug.service.spec-temp +254 -0
  39. package/src/test/template-layout.service.spec.ts +422 -0
  40. package/src/test/template.service.spec.ts +862 -0
  41. package/src/test/test-database.config.ts +24 -0
  42. package/src/test/test-database.d.ts +6 -0
  43. package/src/test/test.setup.ts +34 -0
  44. package/src/types/ioredis.d.ts +6 -0
  45. package/src/types/mjml.d.ts +5 -0
  46. package/tsconfig.json +17 -0
  47. package/tsconfig.lib.json +14 -0
  48. package/tsconfig.spec.json +15 -0
  49. package/src/index.js +0 -23
  50. package/src/index.js.map +0 -1
  51. package/src/lib/constant.d.ts +0 -2
  52. package/src/lib/constant.js +0 -6
  53. package/src/lib/constant.js.map +0 -1
  54. package/src/lib/dto/create-template-layout.dto.d.ts +0 -15
  55. package/src/lib/dto/create-template-layout.dto.js +0 -87
  56. package/src/lib/dto/create-template-layout.dto.js.map +0 -1
  57. package/src/lib/dto/create-template.dto.d.ts +0 -17
  58. package/src/lib/dto/create-template.dto.js +0 -104
  59. package/src/lib/dto/create-template.dto.js.map +0 -1
  60. package/src/lib/dto/render-content-template-layout.dto.d.ts +0 -7
  61. package/src/lib/dto/render-content-template-layout.dto.js +0 -41
  62. package/src/lib/dto/render-content-template-layout.dto.js.map +0 -1
  63. package/src/lib/dto/render-content-template.dto.d.ts +0 -8
  64. package/src/lib/dto/render-content-template.dto.js +0 -47
  65. package/src/lib/dto/render-content-template.dto.js.map +0 -1
  66. package/src/lib/dto/render-template-layout.dto.d.ts +0 -10
  67. package/src/lib/dto/render-template-layout.dto.js +0 -68
  68. package/src/lib/dto/render-template-layout.dto.js.map +0 -1
  69. package/src/lib/dto/render-template.dto.d.ts +0 -14
  70. package/src/lib/dto/render-template.dto.js +0 -91
  71. package/src/lib/dto/render-template.dto.js.map +0 -1
  72. package/src/lib/dto/template-filter.dto.d.ts +0 -8
  73. package/src/lib/dto/template-filter.dto.js +0 -62
  74. package/src/lib/dto/template-filter.dto.js.map +0 -1
  75. package/src/lib/dto/template-layout-filter.dto.d.ts +0 -7
  76. package/src/lib/dto/template-layout-filter.dto.js +0 -61
  77. package/src/lib/dto/template-layout-filter.dto.js.map +0 -1
  78. package/src/lib/engines/language/html.engine.d.ts +0 -9
  79. package/src/lib/engines/language/html.engine.js +0 -79
  80. package/src/lib/engines/language/html.engine.js.map +0 -1
  81. package/src/lib/engines/language/index.js +0 -12
  82. package/src/lib/engines/language/index.js.map +0 -1
  83. package/src/lib/engines/language/markdown.engine.d.ts +0 -9
  84. package/src/lib/engines/language/markdown.engine.js +0 -26
  85. package/src/lib/engines/language/markdown.engine.js.map +0 -1
  86. package/src/lib/engines/language/mjml.engine.d.ts +0 -9
  87. package/src/lib/engines/language/mjml.engine.js +0 -76
  88. package/src/lib/engines/language/mjml.engine.js.map +0 -1
  89. package/src/lib/engines/language/text.engine.d.ts +0 -7
  90. package/src/lib/engines/language/text.engine.js +0 -16
  91. package/src/lib/engines/language/text.engine.js.map +0 -1
  92. package/src/lib/engines/language-engine.js +0 -7
  93. package/src/lib/engines/language-engine.js.map +0 -1
  94. package/src/lib/engines/template/ejs.engine.d.ts +0 -10
  95. package/src/lib/engines/template/ejs.engine.js +0 -66
  96. package/src/lib/engines/template/ejs.engine.js.map +0 -1
  97. package/src/lib/engines/template/handlebars.engine.d.ts +0 -10
  98. package/src/lib/engines/template/handlebars.engine.js +0 -67
  99. package/src/lib/engines/template/handlebars.engine.js.map +0 -1
  100. package/src/lib/engines/template/index.js +0 -12
  101. package/src/lib/engines/template/index.js.map +0 -1
  102. package/src/lib/engines/template/nunjucks.engine.d.ts +0 -16
  103. package/src/lib/engines/template/nunjucks.engine.js +0 -63
  104. package/src/lib/engines/template/nunjucks.engine.js.map +0 -1
  105. package/src/lib/engines/template/pug.engine.d.ts +0 -12
  106. package/src/lib/engines/template/pug.engine.js +0 -75
  107. package/src/lib/engines/template/pug.engine.js.map +0 -1
  108. package/src/lib/engines/template-engine.js +0 -7
  109. package/src/lib/engines/template-engine.js.map +0 -1
  110. package/src/lib/entities/template-layout.entity.d.ts +0 -20
  111. package/src/lib/entities/template-layout.entity.js +0 -121
  112. package/src/lib/entities/template-layout.entity.js.map +0 -1
  113. package/src/lib/entities/template.entity.d.ts +0 -21
  114. package/src/lib/entities/template.entity.js +0 -128
  115. package/src/lib/entities/template.entity.js.map +0 -1
  116. package/src/lib/errors/template.errors.d.ts +0 -19
  117. package/src/lib/errors/template.errors.js.map +0 -1
  118. package/src/lib/interfaces/module-config.interface.js +0 -3
  119. package/src/lib/interfaces/module-config.interface.js.map +0 -1
  120. package/src/lib/interfaces/template.types.d.ts +0 -22
  121. package/src/lib/interfaces/template.types.js +0 -25
  122. package/src/lib/interfaces/template.types.js.map +0 -1
  123. package/src/lib/nest-dynamic-templates.module.d.ts +0 -10
  124. package/src/lib/nest-dynamic-templates.module.js +0 -131
  125. package/src/lib/nest-dynamic-templates.module.js.map +0 -1
  126. package/src/lib/services/template-config.service.d.ts +0 -18
  127. package/src/lib/services/template-config.service.js +0 -66
  128. package/src/lib/services/template-config.service.js.map +0 -1
  129. package/src/lib/services/template-engine.registry.d.ts +0 -21
  130. package/src/lib/services/template-engine.registry.js +0 -94
  131. package/src/lib/services/template-engine.registry.js.map +0 -1
  132. package/src/lib/services/template-layout.service.d.ts +0 -24
  133. package/src/lib/services/template-layout.service.js +0 -301
  134. package/src/lib/services/template-layout.service.js.map +0 -1
  135. package/src/lib/services/template.service.d.ts +0 -26
  136. package/src/lib/services/template.service.js +0 -366
  137. package/src/lib/services/template.service.js.map +0 -1
  138. package/src/test/helpers.d.ts +0 -4
  139. package/src/test/helpers.js.map +0 -1
  140. package/src/test/test-database.config.d.ts +0 -4
  141. package/src/test/test-database.config.js +0 -24
  142. package/src/test/test-database.config.js.map +0 -1
  143. package/src/test/test.setup.d.ts +0 -3
  144. package/src/test/test.setup.js +0 -29
  145. package/src/test/test.setup.js.map +0 -1
  146. package/tsconfig.tsbuildinfo +0 -1
  147. /package/src/lib/engines/language/{index.d.ts → index.ts} +0 -0
  148. /package/src/lib/engines/template/{index.d.ts → index.ts} +0 -0
@@ -1,22 +0,0 @@
1
- export declare enum TemplateTypeEnum {
2
- EMAIL = "email",
3
- SMS = "sms",
4
- PUSH = "push",
5
- PDF = "pdf"
6
- }
7
- export declare enum TemplateEngineEnum {
8
- NUNJUCKS = "njk",
9
- HANDLEBARS = "hbs",
10
- EJS = "ejs",
11
- PUG = "pug"
12
- }
13
- export declare enum TemplateLanguageEnum {
14
- MJML = "mjml",
15
- HTML = "html",
16
- MARKDOWN = "md",
17
- TEXT = "txt"
18
- }
19
- export interface Scope {
20
- scope: string;
21
- id: string;
22
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TemplateLanguageEnum = exports.TemplateEngineEnum = exports.TemplateTypeEnum = void 0;
4
- var TemplateTypeEnum;
5
- (function (TemplateTypeEnum) {
6
- TemplateTypeEnum["EMAIL"] = "email";
7
- TemplateTypeEnum["SMS"] = "sms";
8
- TemplateTypeEnum["PUSH"] = "push";
9
- TemplateTypeEnum["PDF"] = "pdf";
10
- })(TemplateTypeEnum || (exports.TemplateTypeEnum = TemplateTypeEnum = {}));
11
- var TemplateEngineEnum;
12
- (function (TemplateEngineEnum) {
13
- TemplateEngineEnum["NUNJUCKS"] = "njk";
14
- TemplateEngineEnum["HANDLEBARS"] = "hbs";
15
- TemplateEngineEnum["EJS"] = "ejs";
16
- TemplateEngineEnum["PUG"] = "pug";
17
- })(TemplateEngineEnum || (exports.TemplateEngineEnum = TemplateEngineEnum = {}));
18
- var TemplateLanguageEnum;
19
- (function (TemplateLanguageEnum) {
20
- TemplateLanguageEnum["MJML"] = "mjml";
21
- TemplateLanguageEnum["HTML"] = "html";
22
- TemplateLanguageEnum["MARKDOWN"] = "md";
23
- TemplateLanguageEnum["TEXT"] = "txt";
24
- })(TemplateLanguageEnum || (exports.TemplateLanguageEnum = TemplateLanguageEnum = {}));
25
- //# sourceMappingURL=template.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.types.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/interfaces/template.types.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,iCAAa,CAAA;IACb,+BAAW,CAAA;AACf,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,sCAAgB,CAAA;IAChB,wCAAkB,CAAA;IAClB,iCAAW,CAAA;IACX,iCAAW,CAAA;AACf,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B;AAED,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,uCAAe,CAAA;IACf,oCAAY,CAAA;AAChB,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B"}
@@ -1,10 +0,0 @@
1
- import { DynamicModule } from '@nestjs/common';
2
- import { NestDynamicTemplatesModuleConfig, NestDynamicTemplatesModuleAsyncOptions } from './interfaces/module-config.interface';
3
- export declare class NestDynamicTemplatesModule {
4
- static moduleDefaultOptions: Partial<NestDynamicTemplatesModuleConfig>;
5
- static forRoot(config?: NestDynamicTemplatesModuleConfig): DynamicModule;
6
- static forRootAsync(options: NestDynamicTemplatesModuleAsyncOptions): DynamicModule;
7
- private static createAsyncProviders;
8
- private static createAsyncOptionsProvider;
9
- private static getOptions;
10
- }
@@ -1,131 +0,0 @@
1
- "use strict";
2
- var NestDynamicTemplatesModule_1;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.NestDynamicTemplatesModule = void 0;
5
- const tslib_1 = require("tslib");
6
- const common_1 = require("@nestjs/common");
7
- const typeorm_1 = require("@nestjs/typeorm");
8
- const template_entity_1 = require("./entities/template.entity");
9
- const template_layout_entity_1 = require("./entities/template-layout.entity");
10
- const deepmerge_1 = tslib_1.__importDefault(require("deepmerge"));
11
- const template_engine_registry_1 = require("./services/template-engine.registry");
12
- const template_layout_service_1 = require("./services/template-layout.service");
13
- const template_service_1 = require("./services/template.service");
14
- const template_config_service_1 = require("./services/template-config.service");
15
- const constant_1 = require("./constant");
16
- const template_types_1 = require("./interfaces/template.types");
17
- const template_types_2 = require("./interfaces/template.types");
18
- const defaultConfig = {
19
- engines: {
20
- template: [template_types_1.TemplateEngineEnum.NUNJUCKS],
21
- language: [template_types_2.TemplateLanguageEnum.HTML, template_types_2.TemplateLanguageEnum.MJML, template_types_2.TemplateLanguageEnum.TEXT]
22
- }
23
- };
24
- let NestDynamicTemplatesModule = NestDynamicTemplatesModule_1 = class NestDynamicTemplatesModule {
25
- static forRoot(config = {}) {
26
- const mergedConfig = this.getOptions(config);
27
- template_config_service_1.TemplateConfigService.setOptions(mergedConfig);
28
- return {
29
- module: NestDynamicTemplatesModule_1,
30
- global: mergedConfig.isGlobal,
31
- imports: [
32
- typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout]),
33
- ],
34
- providers: [
35
- template_config_service_1.TemplateConfigService,
36
- template_engine_registry_1.TemplateEngineRegistryService,
37
- template_layout_service_1.TemplateLayoutService,
38
- template_service_1.TemplateService,
39
- ],
40
- exports: [
41
- template_config_service_1.TemplateConfigService,
42
- template_service_1.TemplateService,
43
- template_layout_service_1.TemplateLayoutService,
44
- ],
45
- };
46
- }
47
- static forRootAsync(options) {
48
- const asyncProviders = this.createAsyncProviders(options);
49
- return {
50
- module: NestDynamicTemplatesModule_1,
51
- global: options.isGlobal,
52
- imports: [
53
- typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout]),
54
- ...(options.imports || []),
55
- ],
56
- providers: [
57
- ...asyncProviders,
58
- template_config_service_1.TemplateConfigService,
59
- template_engine_registry_1.TemplateEngineRegistryService,
60
- template_layout_service_1.TemplateLayoutService,
61
- template_service_1.TemplateService,
62
- ],
63
- exports: [
64
- template_config_service_1.TemplateConfigService,
65
- template_service_1.TemplateService,
66
- template_layout_service_1.TemplateLayoutService,
67
- ],
68
- };
69
- }
70
- static createAsyncProviders(options) {
71
- if (options.useExisting || options.useFactory) {
72
- return [this.createAsyncOptionsProvider(options)];
73
- }
74
- if (options.useClass) {
75
- return [
76
- this.createAsyncOptionsProvider(options),
77
- {
78
- provide: options.useClass,
79
- useClass: options.useClass,
80
- },
81
- ];
82
- }
83
- return [];
84
- }
85
- static createAsyncOptionsProvider(options) {
86
- if (options.useFactory) {
87
- return {
88
- provide: constant_1.NEST_DYNAMIC_TEMPLATES_ASYNC_OPTIONS_PROVIDER,
89
- useFactory: async (...args) => {
90
- const userOptions = await options.useFactory(...args);
91
- const mergedOptions = this.getOptions(userOptions);
92
- template_config_service_1.TemplateConfigService.setOptions(mergedOptions);
93
- return mergedOptions;
94
- },
95
- inject: options.inject || [],
96
- };
97
- }
98
- return {
99
- provide: constant_1.NEST_DYNAMIC_TEMPLATES_ASYNC_OPTIONS_PROVIDER,
100
- useFactory: async (optionsFactory) => {
101
- const userOptions = await optionsFactory.createNestDynamicTemplatesModuleOptions();
102
- const mergedOptions = this.getOptions(userOptions);
103
- template_config_service_1.TemplateConfigService.setOptions(mergedOptions);
104
- return mergedOptions;
105
- },
106
- inject: [options.useExisting || options.useClass],
107
- };
108
- }
109
- static getOptions(options) {
110
- return (0, deepmerge_1.default)(this.moduleDefaultOptions, options);
111
- }
112
- };
113
- exports.NestDynamicTemplatesModule = NestDynamicTemplatesModule;
114
- NestDynamicTemplatesModule.moduleDefaultOptions = defaultConfig;
115
- exports.NestDynamicTemplatesModule = NestDynamicTemplatesModule = NestDynamicTemplatesModule_1 = tslib_1.__decorate([
116
- (0, common_1.Module)({
117
- imports: [typeorm_1.TypeOrmModule.forFeature([template_entity_1.NestDynamicTemplate, template_layout_entity_1.NestDynamicTemplateLayout])],
118
- providers: [
119
- template_config_service_1.TemplateConfigService,
120
- template_engine_registry_1.TemplateEngineRegistryService,
121
- template_layout_service_1.TemplateLayoutService,
122
- template_service_1.TemplateService,
123
- ],
124
- exports: [
125
- template_config_service_1.TemplateConfigService,
126
- template_service_1.TemplateService,
127
- template_layout_service_1.TemplateLayoutService,
128
- ],
129
- })
130
- ], NestDynamicTemplatesModule);
131
- //# sourceMappingURL=nest-dynamic-templates.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nest-dynamic-templates.module.js","sourceRoot":"","sources":["../../../../../packages/nest-dynamic-templates/src/lib/nest-dynamic-templates.module.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { NestDynamicTemplatesModuleConfig } from '../interfaces/module-config.interface';
2
- import { TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
3
- export declare class TemplateConfigService {
4
- private static config;
5
- private static readonly defaultConfig;
6
- static setOptions(config: NestDynamicTemplatesModuleConfig): void;
7
- static getOptions(): NestDynamicTemplatesModuleConfig;
8
- static hasConfig(): boolean;
9
- static reset(): void;
10
- static get<K extends keyof NestDynamicTemplatesModuleConfig>(key: K): NestDynamicTemplatesModuleConfig[K];
11
- static isTemplateEngineEnabled(engine: TemplateEngineEnum): boolean;
12
- static isLanguageEngineEnabled(language: TemplateLanguageEnum): boolean;
13
- static getEnabledTemplateEngines(): TemplateEngineEnum[];
14
- static getEnabledLanguageEngines(): TemplateLanguageEnum[];
15
- static getTemplateEngineOptions(engine: TemplateEngineEnum): any;
16
- static getLanguageEngineOptions(language: TemplateLanguageEnum): any;
17
- static getCustomFilters(): Record<string, Function>;
18
- }
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TemplateConfigService = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const template_types_1 = require("../interfaces/template.types");
7
- let TemplateConfigService = class TemplateConfigService {
8
- static setOptions(config) {
9
- this.config = { ...this.defaultConfig, ...config };
10
- }
11
- static getOptions() {
12
- if (!this.config) {
13
- return this.defaultConfig;
14
- }
15
- return this.config;
16
- }
17
- static hasConfig() {
18
- return !!this.config;
19
- }
20
- static reset() {
21
- this.config = { ...this.defaultConfig };
22
- }
23
- static get(key) {
24
- const config = this.getOptions();
25
- return config[key];
26
- }
27
- static isTemplateEngineEnabled(engine) {
28
- const config = this.getOptions();
29
- return config.engines?.template?.includes(engine) ?? false;
30
- }
31
- static isLanguageEngineEnabled(language) {
32
- const config = this.getOptions();
33
- return config.engines?.language?.includes(language) ?? false;
34
- }
35
- static getEnabledTemplateEngines() {
36
- const config = this.getOptions();
37
- return config.engines?.template ?? this.defaultConfig.engines.template;
38
- }
39
- static getEnabledLanguageEngines() {
40
- const config = this.getOptions();
41
- return config.engines?.language ?? this.defaultConfig.engines.language;
42
- }
43
- static getTemplateEngineOptions(engine) {
44
- const config = this.getOptions();
45
- return config.enginesOptions?.template?.[engine];
46
- }
47
- static getLanguageEngineOptions(language) {
48
- const config = this.getOptions();
49
- return config.enginesOptions?.language?.[language];
50
- }
51
- static getCustomFilters() {
52
- const config = this.getOptions();
53
- return config.enginesOptions?.filters ?? {};
54
- }
55
- };
56
- exports.TemplateConfigService = TemplateConfigService;
57
- TemplateConfigService.defaultConfig = {
58
- engines: {
59
- template: [template_types_1.TemplateEngineEnum.NUNJUCKS],
60
- language: [template_types_1.TemplateLanguageEnum.HTML, template_types_1.TemplateLanguageEnum.MJML, template_types_1.TemplateLanguageEnum.TEXT]
61
- }
62
- };
63
- exports.TemplateConfigService = TemplateConfigService = tslib_1.__decorate([
64
- (0, common_1.Injectable)()
65
- ], TemplateConfigService);
66
- //# sourceMappingURL=template-config.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-config.service.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/services/template-config.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAE5C,iEAAwF;AAGjF,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAa9B,MAAM,CAAC,UAAU,CAAC,MAAwC;QACtD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IACvD,CAAC;IAKD,MAAM,CAAC,UAAU;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,aAAa,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAKD,MAAM,CAAC,SAAS;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,CAAC;IAKD,MAAM,CAAC,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC;IAKD,MAAM,CAAC,GAAG,CACN,GAAM;QAEN,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAKD,MAAM,CAAC,uBAAuB,CAAC,MAA0B;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;IAC/D,CAAC;IAKD,MAAM,CAAC,uBAAuB,CAAC,QAA8B;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;IACjE,CAAC;IAKD,MAAM,CAAC,yBAAyB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,QAAS,CAAC;IAC7E,CAAC;IAKD,MAAM,CAAC,yBAAyB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,QAAS,CAAC;IAC7E,CAAC;IAKD,MAAM,CAAC,wBAAwB,CAAC,MAA0B;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAKD,MAAM,CAAC,wBAAwB,CAAC,QAA8B;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAKD,MAAM,CAAC,gBAAgB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC;IAChD,CAAC;;AAzGQ,sDAAqB;AAGN,mCAAa,GAAqC;IACtE,OAAO,EAAE;QACL,QAAQ,EAAE,CAAC,mCAAkB,CAAC,QAAQ,CAAC;QACvC,QAAQ,EAAE,CAAC,qCAAoB,CAAC,IAAI,EAAE,qCAAoB,CAAC,IAAI,EAAE,qCAAoB,CAAC,IAAI,CAAC;KAC9F;CACJ,AALoC,CAKnC;gCARO,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CA0GjC"}
@@ -1,21 +0,0 @@
1
- import { TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
2
- import { TemplateEngine } from '../engines/template-engine';
3
- import { LanguageEngine } from '../engines/language-engine';
4
- type ClassType<T> = new (...args: any[]) => T;
5
- export declare class TemplateEngineRegistryService {
6
- private templateEngines;
7
- private languageEngines;
8
- private config;
9
- constructor();
10
- registerTemplateEngines(engineClasses: ClassType<TemplateEngine>[]): void;
11
- registerTemplateEngine(format: TemplateEngineEnum, engine: TemplateEngine): void;
12
- registerLanguageEngine(format: TemplateLanguageEnum, engine: LanguageEngine): void;
13
- getTemplateEngine(format: TemplateEngineEnum): TemplateEngine;
14
- getLanguageEngine(format: TemplateLanguageEnum): LanguageEngine;
15
- registerLanguageEngines(engineClasses: ClassType<LanguageEngine>[]): void;
16
- hasTemplateEngine(format: TemplateEngineEnum): boolean;
17
- hasLanguageEngine(format: TemplateLanguageEnum): boolean;
18
- getSupportedTemplateFormats(): TemplateEngineEnum[];
19
- getSupportedLanguageFormats(): TemplateLanguageEnum[];
20
- }
21
- export {};
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TemplateEngineRegistryService = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const nunjucks_engine_1 = require("../engines/template/nunjucks.engine");
7
- const mjml_engine_1 = require("../engines/language/mjml.engine");
8
- const html_engine_1 = require("../engines/language/html.engine");
9
- const language_1 = require("../engines/language");
10
- const ejs_engine_1 = require("../engines/template/ejs.engine");
11
- const handlebars_engine_1 = require("../engines/template/handlebars.engine");
12
- const pug_engine_1 = require("../engines/template/pug.engine");
13
- const template_config_service_1 = require("./template-config.service");
14
- let TemplateEngineRegistryService = class TemplateEngineRegistryService {
15
- constructor() {
16
- this.templateEngines = new Map();
17
- this.languageEngines = new Map();
18
- this.config = template_config_service_1.TemplateConfigService.getOptions();
19
- this.registerTemplateEngines([
20
- nunjucks_engine_1.NunjucksEngine,
21
- handlebars_engine_1.HandlebarsEngine,
22
- ejs_engine_1.EjsEngine,
23
- pug_engine_1.PugEngine
24
- ]);
25
- this.registerLanguageEngines([
26
- mjml_engine_1.MjmlEngine,
27
- html_engine_1.HtmlEngine,
28
- language_1.TextEngine,
29
- language_1.MarkdownEngine
30
- ]);
31
- }
32
- registerTemplateEngines(engineClasses) {
33
- engineClasses.forEach(EngineClass => {
34
- const engineName = EngineClass.engineName;
35
- if (!engineName) {
36
- throw new Error(`Engine class ${EngineClass.name} must define static engineName property`);
37
- }
38
- const options = this.config.enginesOptions?.template?.[engineName];
39
- const customOptions = {
40
- filters: this.config.enginesOptions?.filters,
41
- globalValues: this.config.enginesOptions?.globalValues
42
- };
43
- this.registerTemplateEngine(engineName, new EngineClass(options, customOptions));
44
- });
45
- }
46
- registerTemplateEngine(format, engine) {
47
- this.templateEngines.set(format, engine);
48
- }
49
- registerLanguageEngine(format, engine) {
50
- this.languageEngines.set(format, engine);
51
- }
52
- getTemplateEngine(format) {
53
- const engine = this.templateEngines.get(format);
54
- if (!engine) {
55
- throw new Error(`Template engine not found for format: ${format}`);
56
- }
57
- return engine;
58
- }
59
- getLanguageEngine(format) {
60
- const engine = this.languageEngines.get(format);
61
- if (!engine) {
62
- throw new Error(`Language engine not found for format: ${format}`);
63
- }
64
- return engine;
65
- }
66
- registerLanguageEngines(engineClasses) {
67
- engineClasses.forEach(EngineClass => {
68
- const engineName = EngineClass.engineName;
69
- if (!engineName) {
70
- throw new Error(`Engine class ${EngineClass.name} must define static engineName property`);
71
- }
72
- const options = this.config.enginesOptions?.language?.[engineName];
73
- this.registerLanguageEngine(engineName, new EngineClass(options));
74
- });
75
- }
76
- hasTemplateEngine(format) {
77
- return this.templateEngines.has(format);
78
- }
79
- hasLanguageEngine(format) {
80
- return this.languageEngines.has(format);
81
- }
82
- getSupportedTemplateFormats() {
83
- return Array.from(this.templateEngines.keys());
84
- }
85
- getSupportedLanguageFormats() {
86
- return Array.from(this.languageEngines.keys());
87
- }
88
- };
89
- exports.TemplateEngineRegistryService = TemplateEngineRegistryService;
90
- exports.TemplateEngineRegistryService = TemplateEngineRegistryService = tslib_1.__decorate([
91
- (0, common_1.Injectable)(),
92
- tslib_1.__metadata("design:paramtypes", [])
93
- ], TemplateEngineRegistryService);
94
- //# sourceMappingURL=template-engine.registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-engine.registry.js","sourceRoot":"","sources":["../../../../../../packages/nest-dynamic-templates/src/lib/services/template-engine.registry.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { Repository } from 'typeorm';
2
- import { NestDynamicTemplateLayout } from '../entities/template-layout.entity';
3
- import { TemplateEngineEnum, TemplateLanguageEnum } from '../interfaces/template.types';
4
- import { TemplateLayoutFilterDto } from '../dto/template-layout-filter.dto';
5
- import { TemplateEngineRegistryService } from './template-engine.registry';
6
- import { RenderTemplateLayoutDto, RenderTemplateLayoutOutput } from '../dto/render-template-layout.dto';
7
- import { CreateTemplateLayoutDto } from '../dto/create-template-layout.dto';
8
- import { RenderContentTemplateLayoutDto } from '../dto/render-content-template-layout.dto';
9
- export declare class TemplateLayoutService {
10
- private readonly layoutRepository;
11
- private readonly engineRegistry;
12
- constructor(layoutRepository: Repository<NestDynamicTemplateLayout>, engineRegistry: TemplateEngineRegistryService);
13
- render(renderDto: RenderTemplateLayoutDto): Promise<RenderTemplateLayoutOutput>;
14
- renderContent(input: RenderContentTemplateLayoutDto): Promise<string>;
15
- renderLanguage(language: TemplateLanguageEnum, content: string, context: Record<string, any>): Promise<string>;
16
- renderEngine(engine: TemplateEngineEnum, content: string, context: Record<string, any>): Promise<string>;
17
- getTemplateLayouts(filter?: TemplateLayoutFilterDto): Promise<NestDynamicTemplateLayout[]>;
18
- getTemplateLayoutById(id: string): Promise<NestDynamicTemplateLayout | null>;
19
- findTemplateLayout(name: string, scope?: string, scopeId?: string, locale?: string): Promise<NestDynamicTemplateLayout | null>;
20
- createTemplateLayout(data: CreateTemplateLayoutDto): Promise<NestDynamicTemplateLayout>;
21
- overwriteSystemTemplateLayout(templateId: string, updates: Partial<CreateTemplateLayoutDto>): Promise<NestDynamicTemplateLayout>;
22
- updateTemplateLayout(id: string, updates: Partial<CreateTemplateLayoutDto>, canUpdateSystemTemplate?: boolean): Promise<NestDynamicTemplateLayout>;
23
- deleteTemplateLayout(id: string, canDeleteSystemTemplate?: boolean): Promise<void>;
24
- }