@tstdl/base 0.71.54 → 0.71.55
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.
- package/examples/mail/basic.d.ts +1 -0
- package/examples/mail/basic.js +33 -0
- package/examples/mail/basic.js.map +1 -0
- package/examples/pdf/basic.d.ts +1 -0
- package/examples/pdf/basic.js +23 -0
- package/examples/pdf/basic.js.map +1 -0
- package/image-service/image-service.d.ts +1 -1
- package/mail/mail.service.d.ts +1 -0
- package/mail/mail.service.js +7 -1
- package/mail/mail.service.js.map +1 -1
- package/mail/models/mail-log.model.d.ts +3 -3
- package/mail/models/mail-template.model.d.ts +0 -1
- package/mail/template-providers/file-mail-template.provider.d.ts +4 -6
- package/mail/template-providers/file-mail-template.provider.js +3 -27
- package/mail/template-providers/file-mail-template.provider.js.map +1 -1
- package/mail/template-providers/memory-mail-template.provider.d.ts +3 -5
- package/mail/template-providers/memory-mail-template.provider.js +2 -14
- package/mail/template-providers/memory-mail-template.provider.js.map +1 -1
- package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +6 -4
- package/mail/template-renderers/handlebars.mail-template-renderer.js +25 -10
- package/mail/template-renderers/handlebars.mail-template-renderer.js.map +1 -1
- package/mail/template-renderers/mjml.mail-template-renderer.d.ts +6 -7
- package/mail/template-renderers/mjml.mail-template-renderer.js +28 -30
- package/mail/template-renderers/mjml.mail-template-renderer.js.map +1 -1
- package/package.json +7 -5
- package/pdf/pdf.service.d.ts +9 -0
- package/pdf/pdf.service.js +48 -0
- package/pdf/pdf.service.js.map +1 -0
- package/templates/index.d.ts +7 -0
- package/templates/index.js +24 -0
- package/templates/index.js.map +1 -0
- package/templates/module.d.ts +12 -0
- package/templates/module.js +24 -0
- package/templates/module.js.map +1 -0
- package/templates/providers/file-template.provider.base.d.ts +12 -0
- package/templates/providers/file-template.provider.base.js +43 -0
- package/templates/providers/file-template.provider.base.js.map +1 -0
- package/templates/providers/file-template.provider.d.ts +21 -0
- package/templates/providers/file-template.provider.js +44 -0
- package/templates/providers/file-template.provider.js.map +1 -0
- package/templates/providers/memory-template.provider.base.d.ts +9 -0
- package/templates/providers/memory-template.provider.base.js +35 -0
- package/templates/providers/memory-template.provider.base.js.map +1 -0
- package/templates/providers/memory-template.provider.d.ts +4 -0
- package/templates/providers/memory-template.provider.js +18 -0
- package/templates/providers/memory-template.provider.js.map +1 -0
- package/templates/renderers/handlebars.template-renderer.d.ts +11 -0
- package/templates/renderers/handlebars.template-renderer.js +27 -0
- package/templates/renderers/handlebars.template-renderer.js.map +1 -0
- package/templates/renderers/mjml.template-renderer.d.ts +15 -0
- package/templates/renderers/mjml.template-renderer.js +54 -0
- package/templates/renderers/mjml.template-renderer.js.map +1 -0
- package/templates/template-renderer.provider.d.ts +8 -0
- package/templates/template-renderer.provider.js +60 -0
- package/templates/template-renderer.provider.js.map +1 -0
- package/templates/template.model.d.ts +5 -0
- package/templates/template.model.js +3 -0
- package/templates/template.model.js.map +1 -0
- package/templates/template.provider.d.ts +4 -0
- package/templates/template.provider.js +7 -0
- package/templates/template.provider.js.map +1 -0
- package/templates/template.renderer.d.ts +6 -0
- package/templates/template.renderer.js +7 -0
- package/templates/template.renderer.js.map +1 -0
- package/templates/template.service.d.ts +11 -0
- package/templates/template.service.js +37 -0
- package/templates/template.service.js.map +1 -0
- package/templates/tokens.d.ts +3 -0
- package/templates/tokens.js +6 -0
- package/templates/tokens.js.map +1 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./module"), exports);
|
|
18
|
+
__exportStar(require("./template-renderer.provider"), exports);
|
|
19
|
+
__exportStar(require("./template.model"), exports);
|
|
20
|
+
__exportStar(require("./template.provider"), exports);
|
|
21
|
+
__exportStar(require("./template.renderer"), exports);
|
|
22
|
+
__exportStar(require("./template.service"), exports);
|
|
23
|
+
__exportStar(require("./tokens"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+DAA6C;AAC7C,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,qDAAmC;AACnC,2CAAyB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Type } from "../types";
|
|
2
|
+
import { TemplateProvider } from './template.provider';
|
|
3
|
+
import type { TemplateRenderer } from './template.renderer';
|
|
4
|
+
export declare type TemplateModuleConfig = {
|
|
5
|
+
templateProvider: Type<TemplateProvider>;
|
|
6
|
+
templateRenderers: Type<TemplateRenderer>[];
|
|
7
|
+
};
|
|
8
|
+
export declare const templateModuleConfig: TemplateModuleConfig;
|
|
9
|
+
/**
|
|
10
|
+
* configure mail module
|
|
11
|
+
*/
|
|
12
|
+
export declare function configureTemplates({ templateProvider, templateRenderers }: Partial<TemplateModuleConfig>): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configureTemplates = exports.templateModuleConfig = void 0;
|
|
4
|
+
const container_1 = require("../container");
|
|
5
|
+
const type_guards_1 = require("../utils/type-guards");
|
|
6
|
+
const template_provider_1 = require("./template.provider");
|
|
7
|
+
const tokens_1 = require("./tokens");
|
|
8
|
+
exports.templateModuleConfig = {
|
|
9
|
+
templateProvider: (0, container_1.stubClass)(template_provider_1.TemplateProvider),
|
|
10
|
+
templateRenderers: []
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* configure mail module
|
|
14
|
+
*/
|
|
15
|
+
function configureTemplates({ templateProvider, templateRenderers }) {
|
|
16
|
+
exports.templateModuleConfig.templateProvider = templateProvider !== null && templateProvider !== void 0 ? templateProvider : exports.templateModuleConfig.templateProvider;
|
|
17
|
+
exports.templateModuleConfig.templateRenderers = [...new Set([...exports.templateModuleConfig.templateRenderers, ...(templateRenderers !== null && templateRenderers !== void 0 ? templateRenderers : [])])];
|
|
18
|
+
if ((0, type_guards_1.isDefined)(templateProvider)) {
|
|
19
|
+
container_1.container.registerSingleton(template_provider_1.TemplateProvider, { useToken: templateProvider });
|
|
20
|
+
}
|
|
21
|
+
container_1.container.registerSingleton(tokens_1.TEMPLATE_RENDERERS, { useValue: exports.templateModuleConfig.templateRenderers });
|
|
22
|
+
}
|
|
23
|
+
exports.configureTemplates = configureTemplates;
|
|
24
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../source/templates/module.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AAEnD,sDAAgD;AAChD,2DAAuD;AAEvD,qCAA8C;AAOjC,QAAA,oBAAoB,GAAyB;IACxD,gBAAgB,EAAE,IAAA,qBAAS,EAAC,oCAAgB,CAAC;IAC7C,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF;;GAEG;AACH,SAAgB,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,EAAiC;IACvG,4BAAoB,CAAC,gBAAgB,GAAG,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,4BAAoB,CAAC,gBAAgB,CAAC;IAClG,4BAAoB,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,4BAAoB,CAAC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjI,IAAI,IAAA,uBAAS,EAAC,gBAAgB,CAAC,EAAE;QAC/B,qBAAS,CAAC,iBAAiB,CAAC,oCAAgB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAC/E;IAED,qBAAS,CAAC,iBAAiB,CAAC,2BAAkB,EAAE,EAAE,QAAQ,EAAE,4BAAoB,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxG,CAAC;AATD,gDASC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Schema } from "../../schema";
|
|
2
|
+
import type { TypedOmit } from "../../types";
|
|
3
|
+
import type { Template } from '../template.model';
|
|
4
|
+
export declare type FileTemplateBase = TypedOmit<Template, 'template'>;
|
|
5
|
+
export declare type FileForward<T extends FileTemplateBase, U extends FileTemplateBase> = [fileKey: keyof U, targetKey: keyof T];
|
|
6
|
+
export declare class FileTemplateProviderBase<T extends FileTemplateBase, U extends FileTemplateBase> {
|
|
7
|
+
private readonly schema;
|
|
8
|
+
private readonly basePath;
|
|
9
|
+
private readonly fileForwards;
|
|
10
|
+
constructor(schema: Schema<U>, basePath: string, fileForwards: FileForward<T, U>[]);
|
|
11
|
+
get(key: string): Promise<T>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileTemplateProviderBase = void 0;
|
|
4
|
+
const type_guards_1 = require("../../utils/type-guards");
|
|
5
|
+
const fs = require("fs/promises");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
class FileTemplateProviderBase {
|
|
8
|
+
constructor(schema, basePath, fileForwards) {
|
|
9
|
+
this.schema = schema;
|
|
10
|
+
this.basePath = basePath;
|
|
11
|
+
this.fileForwards = new Map(fileForwards);
|
|
12
|
+
}
|
|
13
|
+
async get(key) {
|
|
14
|
+
const filePath = path.resolve(this.basePath, `${key}.json`);
|
|
15
|
+
const fileContent = await fs.readFile(filePath, { encoding: 'utf8' });
|
|
16
|
+
const fileTemplate = this.schema.parse(JSON.parse(fileContent));
|
|
17
|
+
const result = {};
|
|
18
|
+
const entries = Object.entries(fileTemplate);
|
|
19
|
+
for (const [property, value] of entries) {
|
|
20
|
+
if (!this.fileForwards.has(property)) {
|
|
21
|
+
result[property] = value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
for (const [fileKey, targetKey] of this.fileForwards) {
|
|
25
|
+
if ((0, type_guards_1.isDefined)(result[targetKey])) {
|
|
26
|
+
if ((0, type_guards_1.isDefined)(fileTemplate[fileKey])) {
|
|
27
|
+
throw new Error(`Either ${fileKey.toString()} or ${targetKey.toString()} must be defined.`);
|
|
28
|
+
}
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if ((0, type_guards_1.isDefined)(fileTemplate[fileKey])) {
|
|
32
|
+
const contentFilePath = (0, type_guards_1.assertStringPass)(fileTemplate[fileKey], 'File path must be a string.');
|
|
33
|
+
const content = await fs.readFile(path.resolve(this.basePath, contentFilePath), { encoding: 'utf8' });
|
|
34
|
+
result[targetKey] = content;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
throw new Error(`Either ${fileKey.toString()} or ${targetKey.toString()} must be defined.`);
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.FileTemplateProviderBase = FileTemplateProviderBase;
|
|
43
|
+
//# sourceMappingURL=file-template.provider.base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-template.provider.base.js","sourceRoot":"","sources":["../../../source/templates/providers/file-template.provider.base.ts"],"names":[],"mappings":";;;AAEA,yDAAkE;AAClE,kCAAkC;AAClC,6BAA6B;AAO7B,MAAa,wBAAwB;IAKnC,YAAY,MAAiB,EAAE,QAAgB,EAAE,YAAiC;QAChF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAyB,CAAC;QAErE,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACpC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;aAC1B;SACF;QAED,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACpD,IAAI,IAAA,uBAAS,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;gBAChC,IAAI,IAAA,uBAAS,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE;oBACpC,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;iBAC7F;gBAED,SAAS;aACV;YAED,IAAI,IAAA,uBAAS,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE;gBACpC,MAAM,eAAe,GAAG,IAAA,8BAAgB,EAAC,YAAY,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,CAAC;gBAC/F,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEtG,MAAM,CAAC,SAAS,CAAC,GAAG,OAAc,CAAC;gBACnC,SAAS;aACV;YAED,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;SAC7F;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA/CD,4DA+CC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Injectable } from "../../container";
|
|
2
|
+
import { resolveArgumentType } from "../../container";
|
|
3
|
+
import type { Template } from '../template.model';
|
|
4
|
+
import type { TemplateProvider } from '../template.provider';
|
|
5
|
+
import type { FileTemplateBase } from './file-template.provider.base';
|
|
6
|
+
import { FileTemplateProviderBase } from './file-template.provider.base';
|
|
7
|
+
export declare type FileTemplate = FileTemplateBase & {
|
|
8
|
+
template?: string;
|
|
9
|
+
/** subject template file */
|
|
10
|
+
templateFile?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare type FileTemplateProviderConfig = {
|
|
13
|
+
basePath?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare type FileTemplateProviderArgument = string;
|
|
16
|
+
export declare const fileTemplateProviderConfig: FileTemplateProviderConfig;
|
|
17
|
+
export declare class FileTemplateProvider extends FileTemplateProviderBase<Template, FileTemplate> implements TemplateProvider, Injectable<FileTemplateProviderArgument> {
|
|
18
|
+
readonly [resolveArgumentType]: FileTemplateProviderArgument;
|
|
19
|
+
constructor(basePath: string);
|
|
20
|
+
}
|
|
21
|
+
export declare function configureFileTemplateProvider(config?: Partial<FileTemplateProviderConfig>): void;
|
|
@@ -0,0 +1,44 @@
|
|
|
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.configureFileTemplateProvider = exports.FileTemplateProvider = exports.fileTemplateProviderConfig = void 0;
|
|
16
|
+
const container_1 = require("../../container");
|
|
17
|
+
const schema_1 = require("../../schema");
|
|
18
|
+
const file_template_provider_base_1 = require("./file-template.provider.base");
|
|
19
|
+
exports.fileTemplateProviderConfig = {};
|
|
20
|
+
const fileTemplateSchema = (0, schema_1.object)({
|
|
21
|
+
type: (0, schema_1.string)(),
|
|
22
|
+
template: (0, schema_1.optional)((0, schema_1.string)()),
|
|
23
|
+
templateFile: (0, schema_1.optional)((0, schema_1.string)()),
|
|
24
|
+
options: (0, schema_1.optional)((0, schema_1.unknown)())
|
|
25
|
+
});
|
|
26
|
+
let FileTemplateProvider = class FileTemplateProvider extends file_template_provider_base_1.FileTemplateProviderBase {
|
|
27
|
+
constructor(basePath) {
|
|
28
|
+
super(fileTemplateSchema, basePath, [['templateFile', 'template']]);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
FileTemplateProvider = __decorate([
|
|
32
|
+
(0, container_1.singleton)({
|
|
33
|
+
defaultArgumentProvider: () => exports.fileTemplateProviderConfig.basePath
|
|
34
|
+
}),
|
|
35
|
+
__param(0, (0, container_1.injectArg)()),
|
|
36
|
+
__metadata("design:paramtypes", [String])
|
|
37
|
+
], FileTemplateProvider);
|
|
38
|
+
exports.FileTemplateProvider = FileTemplateProvider;
|
|
39
|
+
function configureFileTemplateProvider(config = {}) {
|
|
40
|
+
var _a;
|
|
41
|
+
exports.fileTemplateProviderConfig.basePath = (_a = config.basePath) !== null && _a !== void 0 ? _a : exports.fileTemplateProviderConfig.basePath;
|
|
42
|
+
}
|
|
43
|
+
exports.configureFileTemplateProvider = configureFileTemplateProvider;
|
|
44
|
+
//# sourceMappingURL=file-template.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-template.provider.js","sourceRoot":"","sources":["../../../source/templates/providers/file-template.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AAExE,yCAA6D;AAI7D,+EAAyE;AAe5D,QAAA,0BAA0B,GAA+B,EAAE,CAAC;AAEzE,MAAM,kBAAkB,GAAyB,IAAA,eAAM,EAAC;IACtD,IAAI,EAAE,IAAA,eAAM,GAAE;IACd,QAAQ,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC5B,YAAY,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAChC,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAA,gBAAO,GAAE,CAAC;CAC7B,CAAC,CAAC;AAKH,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,sDAAgD;IAGxF,YAAyB,QAAgB;QACvC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;CACF,CAAA;AANY,oBAAoB;IAHhC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAA0B,CAAC,QAAQ;KACnE,CAAC;IAIa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAHb,oBAAoB,CAMhC;AANY,oDAAoB;AAQjC,SAAgB,6BAA6B,CAAC,SAA8C,EAAE;;IAC5F,kCAA0B,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,kCAA0B,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAFD,sEAEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TypedOmit } from "../../types";
|
|
2
|
+
import type { Template } from '../template.model';
|
|
3
|
+
export declare type MemoryTemplateBase = TypedOmit<Template, 'template'>;
|
|
4
|
+
export declare class MemoryTemplateProviderBase<T extends MemoryTemplateBase> {
|
|
5
|
+
private readonly map;
|
|
6
|
+
constructor();
|
|
7
|
+
add(key: string, template: T): void;
|
|
8
|
+
get(key: string): Promise<T>;
|
|
9
|
+
}
|
|
@@ -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,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 @@
|
|
|
1
|
+
{"version":3,"file":"template.model.js","sourceRoot":"","sources":["../../source/templates/template.model.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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,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
|