@tstdl/base 0.71.54 → 0.71.57

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 (87) hide show
  1. package/data-structures/index.d.ts +1 -0
  2. package/data-structures/index.js +1 -0
  3. package/data-structures/index.js.map +1 -1
  4. package/data-structures/set.d.ts +18 -0
  5. package/data-structures/set.js +59 -0
  6. package/data-structures/set.js.map +1 -0
  7. package/disposable/disposable.js +2 -2
  8. package/disposable/disposable.js.map +1 -1
  9. package/examples/mail/basic.d.ts +1 -0
  10. package/examples/mail/basic.js +33 -0
  11. package/examples/mail/basic.js.map +1 -0
  12. package/examples/pdf/basic.d.ts +1 -0
  13. package/examples/pdf/basic.js +23 -0
  14. package/examples/pdf/basic.js.map +1 -0
  15. package/image-service/image-service.d.ts +1 -1
  16. package/mail/mail.service.d.ts +1 -0
  17. package/mail/mail.service.js +7 -1
  18. package/mail/mail.service.js.map +1 -1
  19. package/mail/models/mail-log.model.d.ts +3 -3
  20. package/mail/models/mail-template.model.d.ts +0 -1
  21. package/mail/template-providers/file-mail-template.provider.d.ts +4 -6
  22. package/mail/template-providers/file-mail-template.provider.js +3 -27
  23. package/mail/template-providers/file-mail-template.provider.js.map +1 -1
  24. package/mail/template-providers/memory-mail-template.provider.d.ts +3 -5
  25. package/mail/template-providers/memory-mail-template.provider.js +2 -14
  26. package/mail/template-providers/memory-mail-template.provider.js.map +1 -1
  27. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +6 -4
  28. package/mail/template-renderers/handlebars.mail-template-renderer.js +25 -10
  29. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +1 -1
  30. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +6 -7
  31. package/mail/template-renderers/mjml.mail-template-renderer.js +28 -30
  32. package/mail/template-renderers/mjml.mail-template-renderer.js.map +1 -1
  33. package/package.json +7 -5
  34. package/pdf/index.d.ts +1 -0
  35. package/pdf/index.js +18 -0
  36. package/pdf/index.js.map +1 -0
  37. package/pdf/pdf.service.d.ts +17 -0
  38. package/pdf/pdf.service.js +62 -0
  39. package/pdf/pdf.service.js.map +1 -0
  40. package/pool/index.d.ts +1 -0
  41. package/pool/index.js +18 -0
  42. package/pool/index.js.map +1 -0
  43. package/pool/pool.d.ts +24 -0
  44. package/pool/pool.js +84 -0
  45. package/pool/pool.js.map +1 -0
  46. package/templates/index.d.ts +7 -0
  47. package/templates/index.js +24 -0
  48. package/templates/index.js.map +1 -0
  49. package/templates/module.d.ts +12 -0
  50. package/templates/module.js +24 -0
  51. package/templates/module.js.map +1 -0
  52. package/templates/providers/file-template.provider.base.d.ts +12 -0
  53. package/templates/providers/file-template.provider.base.js +43 -0
  54. package/templates/providers/file-template.provider.base.js.map +1 -0
  55. package/templates/providers/file-template.provider.d.ts +21 -0
  56. package/templates/providers/file-template.provider.js +44 -0
  57. package/templates/providers/file-template.provider.js.map +1 -0
  58. package/templates/providers/memory-template.provider.base.d.ts +9 -0
  59. package/templates/providers/memory-template.provider.base.js +35 -0
  60. package/templates/providers/memory-template.provider.base.js.map +1 -0
  61. package/templates/providers/memory-template.provider.d.ts +4 -0
  62. package/templates/providers/memory-template.provider.js +18 -0
  63. package/templates/providers/memory-template.provider.js.map +1 -0
  64. package/templates/renderers/handlebars.template-renderer.d.ts +11 -0
  65. package/templates/renderers/handlebars.template-renderer.js +27 -0
  66. package/templates/renderers/handlebars.template-renderer.js.map +1 -0
  67. package/templates/renderers/mjml.template-renderer.d.ts +15 -0
  68. package/templates/renderers/mjml.template-renderer.js +54 -0
  69. package/templates/renderers/mjml.template-renderer.js.map +1 -0
  70. package/templates/template-renderer.provider.d.ts +8 -0
  71. package/templates/template-renderer.provider.js +60 -0
  72. package/templates/template-renderer.provider.js.map +1 -0
  73. package/templates/template.model.d.ts +5 -0
  74. package/templates/template.model.js +3 -0
  75. package/templates/template.model.js.map +1 -0
  76. package/templates/template.provider.d.ts +4 -0
  77. package/templates/template.provider.js +7 -0
  78. package/templates/template.provider.js.map +1 -0
  79. package/templates/template.renderer.d.ts +6 -0
  80. package/templates/template.renderer.js +7 -0
  81. package/templates/template.renderer.js.map +1 -0
  82. package/templates/template.service.d.ts +11 -0
  83. package/templates/template.service.js +37 -0
  84. package/templates/template.service.js.map +1 -0
  85. package/templates/tokens.d.ts +3 -0
  86. package/templates/tokens.js +6 -0
  87. package/templates/tokens.js.map +1 -0
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MemoryTemplateProviderBase = void 0;
13
+ const container_1 = require("../../container");
14
+ const type_guards_1 = require("../../utils/type-guards");
15
+ let MemoryTemplateProviderBase = class MemoryTemplateProviderBase {
16
+ constructor() {
17
+ this.map = new Map();
18
+ }
19
+ add(key, template) {
20
+ this.map.set(key, template);
21
+ }
22
+ async get(key) {
23
+ const template = this.map.get(key);
24
+ if ((0, type_guards_1.isUndefined)(template)) {
25
+ throw new Error(`Template ${key} not available.`);
26
+ }
27
+ return template;
28
+ }
29
+ };
30
+ MemoryTemplateProviderBase = __decorate([
31
+ (0, container_1.singleton)(),
32
+ __metadata("design:paramtypes", [])
33
+ ], MemoryTemplateProviderBase);
34
+ exports.MemoryTemplateProviderBase = MemoryTemplateProviderBase;
35
+ //# sourceMappingURL=memory-template.provider.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-template.provider.base.js","sourceRoot":"","sources":["../../../source/templates/providers/memory-template.provider.base.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AAExC,yDAAkD;AAMlD,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IAGrC;QACE,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,QAAW;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,IAAA,yBAAW,EAAC,QAAQ,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,iBAAiB,CAAC,CAAC;SACnD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AApBY,0BAA0B;IADtC,IAAA,qBAAS,GAAE;;GACC,0BAA0B,CAoBtC;AApBY,gEAA0B"}
@@ -0,0 +1,4 @@
1
+ import type { Template } from '../template.model';
2
+ import { MemoryTemplateProviderBase } from './memory-template.provider.base';
3
+ export declare class MemoryTemplateProvider extends MemoryTemplateProviderBase<Template> {
4
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MemoryTemplateProvider = void 0;
10
+ const container_1 = require("../../container");
11
+ const memory_template_provider_base_1 = require("./memory-template.provider.base");
12
+ let MemoryTemplateProvider = class MemoryTemplateProvider extends memory_template_provider_base_1.MemoryTemplateProviderBase {
13
+ };
14
+ MemoryTemplateProvider = __decorate([
15
+ (0, container_1.singleton)()
16
+ ], MemoryTemplateProvider);
17
+ exports.MemoryTemplateProvider = MemoryTemplateProvider;
18
+ //# sourceMappingURL=memory-template.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-template.provider.js","sourceRoot":"","sources":["../../../source/templates/providers/memory-template.provider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAAwC;AAExC,mFAA6E;AAG7E,IAAa,sBAAsB,GAAnC,MAAa,sBAAuB,SAAQ,0DAAoC;CAAI,CAAA;AAAvE,sBAAsB;IADlC,IAAA,qBAAS,GAAE;GACC,sBAAsB,CAAiD;AAAvE,wDAAsB"}
@@ -0,0 +1,11 @@
1
+ import type { Template } from '../template.model';
2
+ import type { TemplateRenderResult } from '../template.renderer';
3
+ import { TemplateRenderer } from '../template.renderer';
4
+ export declare type HandlebarsTemplateOptions = {
5
+ strict?: boolean;
6
+ };
7
+ export declare type HandlebarsTemplate = Template<'handlebars', HandlebarsTemplateOptions>;
8
+ export declare class HandlebarsTemplateRenderer extends TemplateRenderer<HandlebarsTemplate> {
9
+ canHandleType(type: string): boolean;
10
+ render(template: HandlebarsTemplate, context?: object): Promise<TemplateRenderResult>;
11
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HandlebarsTemplateRenderer = void 0;
10
+ const container_1 = require("../../container");
11
+ const handlebars = require("handlebars");
12
+ const template_renderer_1 = require("../template.renderer");
13
+ let HandlebarsTemplateRenderer = class HandlebarsTemplateRenderer extends template_renderer_1.TemplateRenderer {
14
+ canHandleType(type) {
15
+ return type == 'handlebars';
16
+ }
17
+ async render(template, context) {
18
+ var _a, _b;
19
+ const renderer = handlebars.compile(template.template, { strict: (_b = (_a = template.options) === null || _a === void 0 ? void 0 : _a.strict) !== null && _b !== void 0 ? _b : true });
20
+ return renderer(context);
21
+ }
22
+ };
23
+ HandlebarsTemplateRenderer = __decorate([
24
+ (0, container_1.singleton)()
25
+ ], HandlebarsTemplateRenderer);
26
+ exports.HandlebarsTemplateRenderer = HandlebarsTemplateRenderer;
27
+ //# sourceMappingURL=handlebars.template-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlebars.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/handlebars.template-renderer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAAwC;AACxC,yCAAyC;AAGzC,4DAAwD;AAOxD,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,oCAAoC;IAClF,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,IAAI,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAA4B,EAAE,OAAgB;;QACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,mCAAI,IAAI,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AATY,0BAA0B;IADtC,IAAA,qBAAS,GAAE;GACC,0BAA0B,CAStC;AATY,gEAA0B"}
@@ -0,0 +1,15 @@
1
+ import type { MJMLParsingOptions } from 'mjml-core';
2
+ import { TemplateRendererProvider } from '../template-renderer.provider';
3
+ import type { Template } from '../template.model';
4
+ import type { TemplateRenderResult } from '../template.renderer';
5
+ import { TemplateRenderer } from '../template.renderer';
6
+ export declare type MjmlTemplateOptions = Pick<MJMLParsingOptions, 'fonts' | 'keepComments' | 'validationLevel'> & {
7
+ preprocessorOptions?: any;
8
+ };
9
+ export declare type MjmlTemplate = Template<'mjml' | `mjml-${string}`, MjmlTemplateOptions>;
10
+ export declare class MjmlTemplateRenderer extends TemplateRenderer<MjmlTemplate> {
11
+ private readonly rendererProvider;
12
+ constructor(rendererProvider: TemplateRendererProvider);
13
+ canHandleType(type: string): boolean;
14
+ render(template: MjmlTemplate, context?: object): Promise<TemplateRenderResult>;
15
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MjmlTemplateRenderer = void 0;
16
+ const container_1 = require("../../container");
17
+ // @ts-expect-error import is actually working
18
+ const mjml2html = require("mjml");
19
+ const template_renderer_provider_1 = require("../template-renderer.provider");
20
+ const template_renderer_1 = require("../template.renderer");
21
+ let MjmlTemplateRenderer = class MjmlTemplateRenderer extends template_renderer_1.TemplateRenderer {
22
+ constructor(rendererProvider) {
23
+ super();
24
+ this.rendererProvider = rendererProvider;
25
+ }
26
+ canHandleType(type) {
27
+ if (type == 'mjml') {
28
+ return true;
29
+ }
30
+ if (!type.startsWith('mjml-')) {
31
+ return false;
32
+ }
33
+ const parent = type.slice(5);
34
+ return this.rendererProvider.has(parent);
35
+ }
36
+ async render(template, context) {
37
+ var _a;
38
+ if (template.type.length > 4) {
39
+ const parent = template.type.slice(5);
40
+ const renderer = this.rendererProvider.get(parent);
41
+ const result = await renderer.render(Object.assign(Object.assign({}, template), { type: parent, options: (_a = template.options) === null || _a === void 0 ? void 0 : _a.preprocessorOptions }), context);
42
+ const preprocessedTemplate = Object.assign(Object.assign({}, template), { type: 'mjml', template: result });
43
+ return this.render(preprocessedTemplate);
44
+ }
45
+ return mjml2html(template.template).html;
46
+ }
47
+ };
48
+ MjmlTemplateRenderer = __decorate([
49
+ (0, container_1.singleton)(),
50
+ __param(0, (0, container_1.forwardRef)(() => template_renderer_provider_1.TemplateRendererProvider)),
51
+ __metadata("design:paramtypes", [template_renderer_provider_1.TemplateRendererProvider])
52
+ ], MjmlTemplateRenderer);
53
+ exports.MjmlTemplateRenderer = MjmlTemplateRenderer;
54
+ //# sourceMappingURL=mjml.template-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mjml.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/mjml.template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,8CAA8C;AAC9C,kCAAkC;AAElC,8EAAyE;AAGzE,4DAAwD;AASxD,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,oCAA8B;IAGtE,YAAwD,gBAA0C;QAChG,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,IAAI,IAAI,MAAM,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAsB,EAAE,OAAgB;;QACnD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,iCAAM,QAAQ,KAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAA,QAAQ,CAAC,OAAO,0CAAE,mBAAmB,KAAI,OAAO,CAAC,CAAC;YAE7H,MAAM,oBAAoB,mCACrB,QAAQ,KACX,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACjB,CAAC;YAEF,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SAC1C;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;CACF,CAAA;AAxCY,oBAAoB;IADhC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,sBAAU,EAAC,GAAG,EAAE,CAAC,qDAAwB,CAAC,CAAA;qCAAmB,qDAAwB;GAHvF,oBAAoB,CAwChC;AAxCY,oDAAoB"}
@@ -0,0 +1,8 @@
1
+ import type { TemplateRenderer } from './template.renderer';
2
+ export declare class TemplateRendererProvider {
3
+ private readonly renderers;
4
+ constructor(renderers: TemplateRenderer[]);
5
+ register(renderer: TemplateRenderer): void;
6
+ has(type: string): boolean;
7
+ get(type: string): TemplateRenderer;
8
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var TemplateRendererProvider_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.TemplateRendererProvider = void 0;
14
+ const container_1 = require("../container");
15
+ const tokens_1 = require("./tokens");
16
+ let TemplateRendererProvider = TemplateRendererProvider_1 = class TemplateRendererProvider {
17
+ constructor(renderers) {
18
+ this.renderers = new Set(renderers);
19
+ }
20
+ register(renderer) {
21
+ this.renderers.add(renderer);
22
+ }
23
+ has(type) {
24
+ for (const renderer of this.renderers) {
25
+ if (renderer.canHandleType(type)) {
26
+ return true;
27
+ }
28
+ }
29
+ return false;
30
+ }
31
+ get(type) {
32
+ for (const renderer of this.renderers) {
33
+ if (renderer.canHandleType(type)) {
34
+ return renderer;
35
+ }
36
+ }
37
+ throw new Error(`No renderer for ${type} registered.`);
38
+ }
39
+ };
40
+ TemplateRendererProvider = TemplateRendererProvider_1 = __decorate([
41
+ (0, container_1.singleton)({
42
+ provider: {
43
+ useFactory: (_, context) => {
44
+ if (context.isAsync) {
45
+ return (async () => {
46
+ const types = await context.resolveAsync(tokens_1.TEMPLATE_RENDERERS);
47
+ const renderers = await Promise.all(types.map(async (type) => context.resolveAsync(type)));
48
+ return new TemplateRendererProvider_1(renderers);
49
+ })();
50
+ }
51
+ const types = context.resolve(tokens_1.TEMPLATE_RENDERERS);
52
+ const renderers = types.map((type) => context.resolve(type));
53
+ return new TemplateRendererProvider_1(renderers);
54
+ }
55
+ }
56
+ }),
57
+ __metadata("design:paramtypes", [Array])
58
+ ], TemplateRendererProvider);
59
+ exports.TemplateRendererProvider = TemplateRendererProvider;
60
+ //# sourceMappingURL=template-renderer.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-renderer.provider.js","sourceRoot":"","sources":["../../source/templates/template-renderer.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,4CAAwC;AAExC,qCAA8C;AAmB9C,IAAa,wBAAwB,gCAArC,MAAa,wBAAwB;IAGnC,YAAY,SAA6B;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,QAA0B;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,IAAY;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,QAAQ,CAAC;aACjB;SACF;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AA9BY,wBAAwB;IAjBpC,IAAA,qBAAS,EAAC;QACT,QAAQ,EAAE;YACR,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;gBACzB,IAAI,OAAO,CAAC,OAAO,EAAE;oBACnB,OAAO,CAAC,KAAK,IAAI,EAAE;wBACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,2BAAkB,CAAC,CAAC;wBAC7D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC3F,OAAO,IAAI,0BAAwB,CAAC,SAAS,CAAC,CAAC;oBACjD,CAAC,CAAC,EAAE,CAAC;iBACN;gBAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,2BAAkB,CAAC,CAAC;gBAClD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,OAAO,IAAI,0BAAwB,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;SACF;KACF,CAAC;;GACW,wBAAwB,CA8BpC;AA9BY,4DAAwB"}
@@ -0,0 +1,5 @@
1
+ export declare type Template<Type extends string = string, Options = any> = {
2
+ type: Type;
3
+ template: string;
4
+ options?: Options;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=template.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.model.js","sourceRoot":"","sources":["../../source/templates/template.model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { Template } from './template.model';
2
+ export declare abstract class TemplateProvider {
3
+ abstract get(key: string): Promise<Template>;
4
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateProvider = void 0;
4
+ class TemplateProvider {
5
+ }
6
+ exports.TemplateProvider = TemplateProvider;
7
+ //# sourceMappingURL=template.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.provider.js","sourceRoot":"","sources":["../../source/templates/template.provider.ts"],"names":[],"mappings":";;;AAEA,MAAsB,gBAAgB;CAErC;AAFD,4CAEC"}
@@ -0,0 +1,6 @@
1
+ import type { Template } from './template.model';
2
+ export declare type TemplateRenderResult = string;
3
+ export declare abstract class TemplateRenderer<T extends Template = Template> {
4
+ abstract canHandleType(type: string): boolean;
5
+ abstract render(template: T, context?: object): Promise<TemplateRenderResult>;
6
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateRenderer = void 0;
4
+ class TemplateRenderer {
5
+ }
6
+ exports.TemplateRenderer = TemplateRenderer;
7
+ //# sourceMappingURL=template.renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.renderer.js","sourceRoot":"","sources":["../../source/templates/template.renderer.ts"],"names":[],"mappings":";;;AAIA,MAAsB,gBAAgB;CAIrC;AAJD,4CAIC"}
@@ -0,0 +1,11 @@
1
+ import { TemplateRendererProvider } from './template-renderer.provider';
2
+ import type { Template } from './template.model';
3
+ import { TemplateProvider } from './template.provider';
4
+ import type { TemplateRenderResult } from './template.renderer';
5
+ export declare class TemplateService {
6
+ private readonly templateProvider;
7
+ private readonly templateRendererProvider;
8
+ constructor(templateProvider: TemplateProvider, templateRendererProvider: TemplateRendererProvider);
9
+ render(key: string, templateContext?: object): Promise<TemplateRenderResult>;
10
+ render<T extends Template = Template>(template: T, templateContext?: object): Promise<TemplateRenderResult>;
11
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TemplateService = void 0;
16
+ const container_1 = require("../container");
17
+ const type_guards_1 = require("../utils/type-guards");
18
+ const template_renderer_provider_1 = require("./template-renderer.provider");
19
+ const template_provider_1 = require("./template.provider");
20
+ let TemplateService = class TemplateService {
21
+ constructor(templateProvider, templateRendererProvider) {
22
+ this.templateProvider = templateProvider;
23
+ this.templateRendererProvider = templateRendererProvider;
24
+ }
25
+ async render(keyOrTemplate, templateContext) {
26
+ const template = (0, type_guards_1.isString)(keyOrTemplate) ? await this.templateProvider.get(keyOrTemplate) : keyOrTemplate;
27
+ const renderer = this.templateRendererProvider.get(template.type);
28
+ return renderer.render(template, templateContext);
29
+ }
30
+ };
31
+ TemplateService = __decorate([
32
+ (0, container_1.singleton)(),
33
+ __param(0, (0, container_1.optional)()),
34
+ __metadata("design:paramtypes", [template_provider_1.TemplateProvider, template_renderer_provider_1.TemplateRendererProvider])
35
+ ], TemplateService);
36
+ exports.TemplateService = TemplateService;
37
+ //# sourceMappingURL=template.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../source/templates/template.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAkD;AAClD,sDAA+C;AAC/C,6EAAwE;AAExE,2DAAuD;AAIvD,IAAa,eAAe,GAA5B,MAAa,eAAe;IAI1B,YAAwB,gBAAkC,EAAE,wBAAkD;QAC5G,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAID,KAAK,CAAC,MAAM,CAAgC,aAAyB,EAAE,eAAwB;QAC7F,MAAM,QAAQ,GAAG,IAAA,sBAAQ,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;QAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AAhBY,eAAe;IAD3B,IAAA,qBAAS,GAAE;IAKG,WAAA,IAAA,oBAAQ,GAAE,CAAA;qCAAmB,oCAAgB,EAA4B,qDAAwB;GAJnG,eAAe,CAgB3B;AAhBY,0CAAe"}
@@ -0,0 +1,3 @@
1
+ import type { Type } from "../types";
2
+ import type { TemplateRenderer } from './template.renderer';
3
+ export declare const TEMPLATE_RENDERERS: import("../container").InjectionToken<Type<TemplateRenderer<import("./template.model").Template<string, any>>, any>[], any>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEMPLATE_RENDERERS = void 0;
4
+ const container_1 = require("../container");
5
+ exports.TEMPLATE_RENDERERS = (0, container_1.injectionToken)('TEMPLATE_RENDERERS');
6
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../source/templates/tokens.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAIhC,QAAA,kBAAkB,GAAG,IAAA,0BAAc,EAA2B,oBAAoB,CAAC,CAAC"}