@tstdl/base 0.78.0-beta36 → 0.78.0-beta39
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.js +12 -7
- package/examples/mail/basic.js.map +1 -1
- package/examples/mail/templates/hello-name.d.ts +2 -0
- package/examples/mail/templates/hello-name.js +11 -0
- package/examples/mail/templates/hello-name.js.map +1 -0
- package/examples/pdf/basic.js +6 -3
- package/examples/pdf/basic.js.map +1 -1
- package/examples/pdf/templates/hello-name.d.ts +1 -1
- package/examples/pdf/templates/hello-name.js +16 -4
- package/examples/pdf/templates/hello-name.js.map +1 -1
- package/mail/index.d.ts +0 -3
- package/mail/index.js +0 -3
- package/mail/index.js.map +1 -1
- package/mail/mail.service.d.ts +3 -5
- package/mail/mail.service.js +8 -14
- package/mail/mail.service.js.map +1 -1
- package/mail/models/mail-template.model.d.ts +11 -10
- package/mail/models/mail-template.model.js +7 -0
- package/mail/models/mail-template.model.js.map +1 -1
- package/mail/module.d.ts +1 -5
- package/mail/module.js +2 -11
- package/mail/module.js.map +1 -1
- package/mail/tokens.d.ts +0 -3
- package/mail/tokens.js +1 -2
- package/mail/tokens.js.map +1 -1
- package/openid-connect/oidc-configuration.service.d.ts +2 -1
- package/openid-connect/oidc-configuration.service.js +5 -3
- package/openid-connect/oidc-configuration.service.js.map +1 -1
- package/openid-connect/oidc.service.js +4 -1
- package/openid-connect/oidc.service.js.map +1 -1
- package/package.json +3 -3
- package/pdf/pdf.service.d.ts +48 -10
- package/pdf/pdf.service.js +114 -4
- package/pdf/pdf.service.js.map +1 -1
- package/schema/decorators/optional.d.ts +3 -1
- package/schema/decorators/optional.js +2 -2
- package/schema/decorators/optional.js.map +1 -1
- package/schema/decorators/types.d.ts +3 -3
- package/schema/types.d.ts +4 -3
- package/schema/types.js.map +1 -1
- package/schema/utils/schema.js +2 -2
- package/schema/utils/schema.js.map +1 -1
- package/schema/utils/value-type.d.ts +2 -2
- package/schema/utils/value-type.js +10 -0
- package/schema/utils/value-type.js.map +1 -1
- package/search-index/elastic/model/index-mapping.d.ts +2 -1
- package/search-index/elastic/model/index-mapping.js.map +1 -1
- package/search-index/elastic/search-index.js +1 -1
- package/search-index/elastic/search-index.js.map +1 -1
- package/templates/index.d.ts +2 -0
- package/templates/index.js +2 -0
- package/templates/index.js.map +1 -1
- package/templates/module.d.ts +3 -1
- package/templates/module.js +31 -8
- package/templates/module.js.map +1 -1
- package/templates/providers/file.provider-template.d.ts +16 -0
- package/templates/providers/{file-template.provider.js → file.provider-template.js} +22 -15
- package/templates/providers/file.provider-template.js.map +1 -0
- package/templates/providers/memory.template-provider.d.ts +8 -0
- package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js} +8 -6
- package/templates/providers/memory.template-provider.js.map +1 -0
- package/templates/renderers/handlebars.template-renderer.d.ts +33 -11
- package/templates/renderers/handlebars.template-renderer.js +43 -30
- package/templates/renderers/handlebars.template-renderer.js.map +1 -1
- package/templates/renderers/mjml.template-renderer.d.ts +6 -6
- package/templates/renderers/mjml.template-renderer.js +8 -9
- package/templates/renderers/mjml.template-renderer.js.map +1 -1
- package/templates/renderers/string.template-renderer.d.ts +8 -0
- package/{mail/template-providers/memory-mail-template.provider.js → templates/renderers/string.template-renderer.js} +13 -7
- package/templates/renderers/string.template-renderer.js.map +1 -0
- package/templates/resolvers/file.template-resolver.d.ts +23 -0
- package/templates/resolvers/file.template-resolver.js +63 -0
- package/templates/resolvers/file.template-resolver.js.map +1 -0
- package/templates/resolvers/string.template-resolver.d.ts +13 -0
- package/templates/resolvers/string.template-resolver.js +44 -0
- package/templates/resolvers/string.template-resolver.js.map +1 -0
- package/templates/template-renderer.provider.js +7 -19
- package/templates/template-renderer.provider.js.map +1 -1
- package/templates/template-resolver.provider.d.ts +8 -0
- package/templates/template-resolver.provider.js +48 -0
- package/templates/template-resolver.provider.js.map +1 -0
- package/templates/template.model.d.ts +14 -5
- package/templates/template.model.js +41 -4
- package/templates/template.model.js.map +1 -1
- package/templates/template.renderer.d.ts +14 -3
- package/templates/template.renderer.js +3 -0
- package/templates/template.renderer.js.map +1 -1
- package/templates/template.resolver.d.ts +5 -0
- package/templates/template.resolver.js +7 -0
- package/templates/template.resolver.js.map +1 -0
- package/templates/template.service.d.ts +10 -4
- package/templates/template.service.js +17 -4
- package/templates/template.service.js.map +1 -1
- package/templates/tokens.d.ts +3 -2
- package/templates/tokens.js +2 -1
- package/templates/tokens.js.map +1 -1
- package/utils/function/memoize.d.ts +1 -0
- package/utils/function/memoize.js +5 -2
- package/utils/function/memoize.js.map +1 -1
- package/mail/mail-template-renderer.provider.d.ts +0 -8
- package/mail/mail-template-renderer.provider.js +0 -60
- package/mail/mail-template-renderer.provider.js.map +0 -1
- package/mail/mail-template.provider.d.ts +0 -4
- package/mail/mail-template.provider.js +0 -7
- package/mail/mail-template.provider.js.map +0 -1
- package/mail/mail-template.renderer.d.ts +0 -10
- package/mail/mail-template.renderer.js +0 -7
- package/mail/mail-template.renderer.js.map +0 -1
- package/mail/template-providers/file-mail-template.provider.d.ts +0 -24
- package/mail/template-providers/file-mail-template.provider.js +0 -51
- package/mail/template-providers/file-mail-template.provider.js.map +0 -1
- package/mail/template-providers/memory-mail-template.provider.d.ts +0 -6
- package/mail/template-providers/memory-mail-template.provider.js.map +0 -1
- package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +0 -13
- package/mail/template-renderers/handlebars.mail-template-renderer.js +0 -49
- package/mail/template-renderers/handlebars.mail-template-renderer.js.map +0 -1
- package/mail/template-renderers/mjml.mail-template-renderer.d.ts +0 -14
- package/mail/template-renderers/mjml.mail-template-renderer.js +0 -63
- package/mail/template-renderers/mjml.mail-template-renderer.js.map +0 -1
- package/templates/providers/file-template.provider.base.d.ts +0 -12
- package/templates/providers/file-template.provider.base.js +0 -50
- package/templates/providers/file-template.provider.base.js.map +0 -1
- package/templates/providers/file-template.provider.d.ts +0 -22
- package/templates/providers/file-template.provider.js.map +0 -1
- package/templates/providers/memory-template.provider.base.d.ts +0 -9
- package/templates/providers/memory-template.provider.base.js.map +0 -1
- package/templates/providers/memory-template.provider.d.ts +0 -4
- package/templates/providers/memory-template.provider.js +0 -18
- package/templates/providers/memory-template.provider.js.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Template } from '../template.model';
|
|
2
|
+
import { TemplateProvider } from '../template.provider';
|
|
3
|
+
export declare class MemoryTemplateProvider extends TemplateProvider {
|
|
4
|
+
private readonly map;
|
|
5
|
+
constructor();
|
|
6
|
+
add(key: string, template: Template): void;
|
|
7
|
+
get(key: string): Promise<Template>;
|
|
8
|
+
}
|
package/templates/providers/{memory-template.provider.base.js → memory.template-provider.js}
RENAMED
|
@@ -9,11 +9,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.MemoryTemplateProvider = void 0;
|
|
13
13
|
const container_1 = require("../../container");
|
|
14
14
|
const type_guards_1 = require("../../utils/type-guards");
|
|
15
|
-
|
|
15
|
+
const template_provider_1 = require("../template.provider");
|
|
16
|
+
let MemoryTemplateProvider = class MemoryTemplateProvider extends template_provider_1.TemplateProvider {
|
|
16
17
|
constructor() {
|
|
18
|
+
super();
|
|
17
19
|
this.map = new Map();
|
|
18
20
|
}
|
|
19
21
|
add(key, template) {
|
|
@@ -27,9 +29,9 @@ let MemoryTemplateProviderBase = class MemoryTemplateProviderBase {
|
|
|
27
29
|
return template;
|
|
28
30
|
}
|
|
29
31
|
};
|
|
30
|
-
|
|
32
|
+
MemoryTemplateProvider = __decorate([
|
|
31
33
|
(0, container_1.singleton)(),
|
|
32
34
|
__metadata("design:paramtypes", [])
|
|
33
|
-
],
|
|
34
|
-
exports.
|
|
35
|
-
//# sourceMappingURL=memory-
|
|
35
|
+
], MemoryTemplateProvider);
|
|
36
|
+
exports.MemoryTemplateProvider = MemoryTemplateProvider;
|
|
37
|
+
//# 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;AACxC,yDAAkD;AAElD,4DAAwD;AAGjD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oCAAgB;IAG1D;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,QAAkB;QACjC,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;AAtBY,sBAAsB;IADlC,IAAA,qBAAS,GAAE;;GACC,sBAAsB,CAsBlC;AAtBY,wDAAsB"}
|
|
@@ -1,22 +1,44 @@
|
|
|
1
|
-
import type { Record } from "../../types";
|
|
1
|
+
import type { ObjectLiteral, Record } from "../../types";
|
|
2
2
|
import * as handlebars from 'handlebars';
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
3
|
+
import { TemplateResolverProvider } from '../template-resolver.provider';
|
|
4
|
+
import type { TemplateField } from '../template.model';
|
|
5
|
+
import type { TemplateRenderObject } from '../template.renderer';
|
|
5
6
|
import { TemplateRenderer } from '../template.renderer';
|
|
6
|
-
export declare type
|
|
7
|
+
export declare type HandlebarsTemplateHelperOptionsLocationItem = {
|
|
8
|
+
line: number;
|
|
9
|
+
column: number;
|
|
10
|
+
};
|
|
11
|
+
export declare type HandlebarsTemplateHelperOptionsLocation = {
|
|
12
|
+
start: HandlebarsTemplateHelperOptionsLocationItem;
|
|
13
|
+
end: HandlebarsTemplateHelperOptionsLocationItem;
|
|
14
|
+
};
|
|
15
|
+
export declare type HandlebarsTemplateHelperOptions = {
|
|
16
|
+
name: string;
|
|
17
|
+
location?: HandlebarsTemplateHelperOptionsLocation;
|
|
18
|
+
data?: Record<string>;
|
|
19
|
+
hash: Record<string>;
|
|
20
|
+
hasFn: false;
|
|
21
|
+
lookupProperty: (object: ObjectLiteral, propertyName: string) => unknown;
|
|
22
|
+
fn?: handlebars.TemplateDelegate;
|
|
23
|
+
inverse?: handlebars.TemplateDelegate;
|
|
24
|
+
};
|
|
25
|
+
export declare type HandlebarsTemplateHelper = (context: unknown, args: unknown[], options: HandlebarsTemplateHelperOptions) => any;
|
|
7
26
|
export declare type HandlebarsTemplateHelpersObject = Record<string, HandlebarsTemplateHelper>;
|
|
8
|
-
export declare type HandlebarsTemplatePartial = string |
|
|
27
|
+
export declare type HandlebarsTemplatePartial = string | TemplateField<string, 'handlebars', HandlebarsRendererOptions> | handlebars.TemplateDelegate;
|
|
9
28
|
export declare type HandlebarsTemplatePartialsObject = Record<string, HandlebarsTemplatePartial>;
|
|
10
|
-
export declare type
|
|
29
|
+
export declare type HandlebarsRendererOptions = {
|
|
11
30
|
strict?: boolean;
|
|
12
31
|
preventIndent?: boolean;
|
|
13
32
|
helpers?: HandlebarsTemplateHelpersObject;
|
|
14
33
|
partials?: HandlebarsTemplatePartialsObject;
|
|
15
34
|
};
|
|
16
|
-
export declare type
|
|
17
|
-
export declare class HandlebarsTemplateRenderer extends TemplateRenderer<
|
|
35
|
+
export declare type HandlebarsTemplateRenderObject = TemplateRenderObject<'handlebars', HandlebarsRendererOptions>;
|
|
36
|
+
export declare class HandlebarsTemplateRenderer extends TemplateRenderer<'handlebars', HandlebarsRendererOptions> {
|
|
37
|
+
private readonly templateResolverProvider;
|
|
38
|
+
private readonly compileHandlebarsTemplate;
|
|
39
|
+
constructor(templateResolverProvider: TemplateResolverProvider);
|
|
18
40
|
canHandleType(type: string): boolean;
|
|
19
|
-
|
|
41
|
+
_render(renderObject: HandlebarsTemplateRenderObject, context?: object): Promise<string>;
|
|
42
|
+
private _compileHandlebarsTemplate;
|
|
43
|
+
private normalizePartial;
|
|
20
44
|
}
|
|
21
|
-
export declare function handlebarsTemplateOptions<T extends HandlebarsTemplateOptions>(options: T): T;
|
|
22
|
-
export declare function handlebarsTemplate<T extends HandlebarsTemplate = HandlebarsTemplate>(template: T): T;
|
|
@@ -5,53 +5,66 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
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
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
12
|
+
exports.HandlebarsTemplateRenderer = void 0;
|
|
10
13
|
const container_1 = require("../../container");
|
|
11
14
|
const memoize_1 = require("../../utils/function/memoize");
|
|
12
15
|
const object_1 = require("../../utils/object/object");
|
|
13
16
|
const type_guards_1 = require("../../utils/type-guards");
|
|
14
17
|
const handlebars = require("handlebars");
|
|
18
|
+
const template_resolver_provider_1 = require("../template-resolver.provider");
|
|
15
19
|
const template_renderer_1 = require("../template.renderer");
|
|
16
|
-
const
|
|
20
|
+
const wrapHandlebarsTemplateHelper = (0, memoize_1.memoizeSingle)(_wrapHandlebarsTemplateHelper, { weak: true });
|
|
17
21
|
let HandlebarsTemplateRenderer = class HandlebarsTemplateRenderer extends template_renderer_1.TemplateRenderer {
|
|
22
|
+
constructor(templateResolverProvider) {
|
|
23
|
+
super();
|
|
24
|
+
this.templateResolverProvider = templateResolverProvider;
|
|
25
|
+
this.compileHandlebarsTemplate = (0, memoize_1.memoizeSingle)(this._compileHandlebarsTemplate, { weak: true }); // eslint-disable-line @typescript-eslint/unbound-method
|
|
26
|
+
}
|
|
18
27
|
canHandleType(type) {
|
|
19
28
|
return type == 'handlebars';
|
|
20
29
|
}
|
|
21
|
-
async
|
|
22
|
-
const renderer = compileHandlebarsTemplate(
|
|
30
|
+
async _render(renderObject, context) {
|
|
31
|
+
const renderer = await this.compileHandlebarsTemplate(renderObject);
|
|
23
32
|
return renderer(context);
|
|
24
33
|
}
|
|
34
|
+
async _compileHandlebarsTemplate({ template, options = {} }) {
|
|
35
|
+
const renderer = handlebars.compile(template, {
|
|
36
|
+
strict: options.strict ?? true,
|
|
37
|
+
preventIndent: options.preventIndent,
|
|
38
|
+
knownHelpers: (0, type_guards_1.isDefined)(options.helpers) ? (0, object_1.mapObjectValues)(options.helpers, () => true) : undefined,
|
|
39
|
+
knownHelpersOnly: true
|
|
40
|
+
});
|
|
41
|
+
const wrappedHelpers = (0, type_guards_1.isDefined)(options.helpers) ? (0, object_1.mapObjectValues)(options.helpers, wrapHandlebarsTemplateHelper) : undefined;
|
|
42
|
+
const normalizedPartials = (0, type_guards_1.isDefined)(options.partials) ? await (0, object_1.mapObjectValuesAsync)(options.partials, async (partial) => this.normalizePartial(partial)) : undefined;
|
|
43
|
+
return (context, runtimeOptions) => renderer(context, { helpers: wrappedHelpers, partials: normalizedPartials, ...runtimeOptions });
|
|
44
|
+
}
|
|
45
|
+
async normalizePartial(partial) {
|
|
46
|
+
if ((0, type_guards_1.isString)(partial)) {
|
|
47
|
+
return this.compileHandlebarsTemplate({ renderer: 'handlebars', template: partial });
|
|
48
|
+
}
|
|
49
|
+
if ((0, type_guards_1.isFunction)(partial)) {
|
|
50
|
+
return partial;
|
|
51
|
+
}
|
|
52
|
+
const resolver = this.templateResolverProvider.get(partial.resolver);
|
|
53
|
+
const template = await resolver.resolve(partial);
|
|
54
|
+
return this.compileHandlebarsTemplate({ renderer: 'handlebars', template, options: partial.options });
|
|
55
|
+
}
|
|
25
56
|
};
|
|
26
57
|
HandlebarsTemplateRenderer = __decorate([
|
|
27
|
-
(0, container_1.singleton)()
|
|
58
|
+
(0, container_1.singleton)(),
|
|
59
|
+
__metadata("design:paramtypes", [template_resolver_provider_1.TemplateResolverProvider])
|
|
28
60
|
], HandlebarsTemplateRenderer);
|
|
29
61
|
exports.HandlebarsTemplateRenderer = HandlebarsTemplateRenderer;
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return template;
|
|
36
|
-
}
|
|
37
|
-
exports.handlebarsTemplate = handlebarsTemplate;
|
|
38
|
-
function _compileHandlebarsTemplate({ template, options = {} }) {
|
|
39
|
-
const renderer = handlebars.compile(template, {
|
|
40
|
-
strict: options.strict ?? true,
|
|
41
|
-
preventIndent: options.preventIndent,
|
|
42
|
-
knownHelpers: (0, type_guards_1.isDefined)(options.helpers) ? (0, object_1.mapObjectValues)(options.helpers, () => true) : undefined,
|
|
43
|
-
knownHelpersOnly: true
|
|
44
|
-
});
|
|
45
|
-
const normalizedPartials = (0, type_guards_1.isDefined)(options.partials) ? (0, object_1.mapObjectValues)(options.partials, normalizePartial) : undefined;
|
|
46
|
-
return (context, runtimeOptions) => renderer(context, { helpers: options.helpers, partials: normalizedPartials, ...runtimeOptions });
|
|
47
|
-
}
|
|
48
|
-
function normalizePartial(partial) {
|
|
49
|
-
if ((0, type_guards_1.isString)(partial)) {
|
|
50
|
-
return compileHandlebarsTemplate({ type: 'handlebars', template: partial });
|
|
51
|
-
}
|
|
52
|
-
if ((0, type_guards_1.isFunction)(partial)) {
|
|
53
|
-
return partial;
|
|
62
|
+
function _wrapHandlebarsTemplateHelper(helper) {
|
|
63
|
+
function wrapper(context, ...argsAndOptions) {
|
|
64
|
+
const args = argsAndOptions.slice(0, -1);
|
|
65
|
+
const options = argsAndOptions[argsAndOptions.length - 1];
|
|
66
|
+
helper(context, args, options);
|
|
54
67
|
}
|
|
55
|
-
return
|
|
68
|
+
return wrapper;
|
|
56
69
|
}
|
|
57
70
|
//# sourceMappingURL=handlebars.template-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlebars.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/handlebars.template-renderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handlebars.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/handlebars.template-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { MJMLParsingOptions } from 'mjml-core';
|
|
2
2
|
import { TemplateRendererProvider } from '../template-renderer.provider';
|
|
3
|
-
import type {
|
|
4
|
-
import type { TemplateRenderResult } from '../template.renderer';
|
|
3
|
+
import type { TemplateRenderObject, TemplateRenderResult } from '../template.renderer';
|
|
5
4
|
import { TemplateRenderer } from '../template.renderer';
|
|
6
|
-
export declare type
|
|
5
|
+
export declare type MjmlRendererOptions = Pick<MJMLParsingOptions, 'fonts' | 'keepComments' | 'validationLevel'> & {
|
|
7
6
|
preprocessorOptions?: any;
|
|
8
7
|
};
|
|
9
|
-
export declare type
|
|
10
|
-
export declare
|
|
8
|
+
export declare type MjmlRendererString = 'mjml' | `mjml-${string}`;
|
|
9
|
+
export declare type MjmlTemplateRenderObject = TemplateRenderObject<MjmlRendererString, MjmlRendererOptions>;
|
|
10
|
+
export declare class MjmlTemplateRenderer extends TemplateRenderer<MjmlRendererString, MjmlRendererOptions> {
|
|
11
11
|
private readonly rendererProvider;
|
|
12
12
|
constructor(rendererProvider: TemplateRendererProvider);
|
|
13
13
|
canHandleType(type: string): boolean;
|
|
14
|
-
|
|
14
|
+
_render({ renderer, template, options }: MjmlTemplateRenderObject, context?: object): Promise<TemplateRenderResult>;
|
|
15
15
|
}
|
|
@@ -33,19 +33,18 @@ let MjmlTemplateRenderer = class MjmlTemplateRenderer extends template_renderer_
|
|
|
33
33
|
const parent = type.slice(5);
|
|
34
34
|
return this.rendererProvider.has(parent);
|
|
35
35
|
}
|
|
36
|
-
async
|
|
37
|
-
if (
|
|
38
|
-
const parent =
|
|
39
|
-
const
|
|
40
|
-
const result = await
|
|
36
|
+
async _render({ renderer, template, options }, context) {
|
|
37
|
+
if (renderer.length > 4) {
|
|
38
|
+
const parent = renderer.slice(5);
|
|
39
|
+
const parentRenderer = this.rendererProvider.get(parent);
|
|
40
|
+
const result = await parentRenderer.render({ template, renderer: parent, options: options?.preprocessorOptions }, context);
|
|
41
41
|
const preprocessedTemplate = {
|
|
42
|
-
|
|
43
|
-
type: 'mjml',
|
|
42
|
+
renderer: 'mjml',
|
|
44
43
|
template: result
|
|
45
44
|
};
|
|
46
|
-
return this.
|
|
45
|
+
return this._render(preprocessedTemplate);
|
|
47
46
|
}
|
|
48
|
-
return mjml2html(template
|
|
47
|
+
return mjml2html(template).html;
|
|
49
48
|
}
|
|
50
49
|
};
|
|
51
50
|
MjmlTemplateRenderer = __decorate([
|
|
@@ -1 +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;
|
|
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;AAEzE,4DAAwD;AAWjD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oCAAyD;IAGjG,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,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAA4B,EAAE,OAAgB;QACvF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEzD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;YAE3H,MAAM,oBAAoB,GAA6B;gBACrD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,MAAM;aACjB,CAAC;YAEF,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;SAC3C;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;CACF,CAAA;AAvCY,oBAAoB;IADhC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,sBAAU,EAAC,GAAG,EAAE,CAAC,qDAAwB,CAAC,CAAA;qCAAmB,qDAAwB;GAHvF,oBAAoB,CAuChC;AAvCY,oDAAoB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TemplateRenderObject, TemplateRenderResult } from '../template.renderer';
|
|
2
|
+
import { TemplateRenderer } from '../template.renderer';
|
|
3
|
+
export declare type StringTemplateRenderObject = TemplateRenderObject<'string', undefined>;
|
|
4
|
+
export declare class StringTemplateRenderer extends TemplateRenderer<'string', undefined> {
|
|
5
|
+
constructor();
|
|
6
|
+
canHandleType(type: string): boolean;
|
|
7
|
+
_render({ template }: StringTemplateRenderObject, _context?: object): Promise<TemplateRenderResult>;
|
|
8
|
+
}
|
|
@@ -9,17 +9,23 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.StringTemplateRenderer = void 0;
|
|
13
13
|
const container_1 = require("../../container");
|
|
14
|
-
const
|
|
15
|
-
let
|
|
14
|
+
const template_renderer_1 = require("../template.renderer");
|
|
15
|
+
let StringTemplateRenderer = class StringTemplateRenderer extends template_renderer_1.TemplateRenderer {
|
|
16
16
|
constructor() {
|
|
17
17
|
super();
|
|
18
18
|
}
|
|
19
|
+
canHandleType(type) {
|
|
20
|
+
return (type == 'string');
|
|
21
|
+
}
|
|
22
|
+
async _render({ template }, _context) {
|
|
23
|
+
return template;
|
|
24
|
+
}
|
|
19
25
|
};
|
|
20
|
-
|
|
26
|
+
StringTemplateRenderer = __decorate([
|
|
21
27
|
(0, container_1.singleton)(),
|
|
22
28
|
__metadata("design:paramtypes", [])
|
|
23
|
-
],
|
|
24
|
-
exports.
|
|
25
|
-
//# sourceMappingURL=
|
|
29
|
+
], StringTemplateRenderer);
|
|
30
|
+
exports.StringTemplateRenderer = StringTemplateRenderer;
|
|
31
|
+
//# sourceMappingURL=string.template-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.template-renderer.js","sourceRoot":"","sources":["../../../source/templates/renderers/string.template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AAExC,4DAAwD;AAKjD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oCAAqC;IAC/E;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAA8B,EAAE,QAAiB;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAZY,sBAAsB;IADlC,IAAA,qBAAS,GAAE;;GACC,sBAAsB,CAYlC;AAZY,wDAAsB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Injectable } from "../../container";
|
|
2
|
+
import { resolveArgumentType } from "../../container";
|
|
3
|
+
import { TypedOmit } from "../../types";
|
|
4
|
+
import { TemplateField } from '../template.model';
|
|
5
|
+
import { TemplateRenderer, TemplateRendererOptions, TemplateRendererString } from '../template.renderer';
|
|
6
|
+
import { TemplateResolver } from '../template.resolver';
|
|
7
|
+
export declare type FileTemplateProviderConfig = {
|
|
8
|
+
basePath?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare type FileTemplateProviderArgument = string;
|
|
11
|
+
export declare const fileTemplateProviderConfig: FileTemplateProviderConfig;
|
|
12
|
+
export declare class FileTemplateField<Renderer extends string = string, Options = any> extends TemplateField<'file', Renderer, Options> {
|
|
13
|
+
templateFile: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class FileTemplateResolver extends TemplateResolver<FileTemplateField> implements Injectable<FileTemplateProviderArgument> {
|
|
16
|
+
private readonly basePath;
|
|
17
|
+
readonly [resolveArgumentType]: FileTemplateProviderArgument;
|
|
18
|
+
constructor(basePath: string);
|
|
19
|
+
canHandle(resolver: string): boolean;
|
|
20
|
+
resolve(field: FileTemplateField): Promise<string>;
|
|
21
|
+
}
|
|
22
|
+
export declare function fileTemplateField<Renderer extends TemplateRenderer>(field: TypedOmit<FileTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>, 'resolver'>): FileTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>;
|
|
23
|
+
export declare function configureFileTemplateResolver(config?: Partial<FileTemplateProviderConfig>): void;
|
|
@@ -0,0 +1,63 @@
|
|
|
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.configureFileTemplateResolver = exports.fileTemplateField = exports.FileTemplateResolver = exports.FileTemplateField = exports.fileTemplateProviderConfig = void 0;
|
|
16
|
+
const container_1 = require("../../container");
|
|
17
|
+
const bad_request_error_1 = require("../../error/bad-request.error");
|
|
18
|
+
const schema_1 = require("../../schema");
|
|
19
|
+
const fs = require("fs/promises");
|
|
20
|
+
const path = require("path");
|
|
21
|
+
const template_model_1 = require("../template.model");
|
|
22
|
+
const template_resolver_1 = require("../template.resolver");
|
|
23
|
+
exports.fileTemplateProviderConfig = {};
|
|
24
|
+
class FileTemplateField extends template_model_1.TemplateField {
|
|
25
|
+
}
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, schema_1.Property)(),
|
|
28
|
+
__metadata("design:type", String)
|
|
29
|
+
], FileTemplateField.prototype, "templateFile", void 0);
|
|
30
|
+
exports.FileTemplateField = FileTemplateField;
|
|
31
|
+
let FileTemplateResolver = class FileTemplateResolver extends template_resolver_1.TemplateResolver {
|
|
32
|
+
constructor(basePath) {
|
|
33
|
+
super();
|
|
34
|
+
this.basePath = path.resolve(basePath);
|
|
35
|
+
}
|
|
36
|
+
canHandle(resolver) {
|
|
37
|
+
return (resolver == 'file');
|
|
38
|
+
}
|
|
39
|
+
async resolve(field) {
|
|
40
|
+
const filePath = path.resolve(this.basePath, field.templateFile);
|
|
41
|
+
if (!filePath.startsWith(this.basePath)) {
|
|
42
|
+
throw new bad_request_error_1.BadRequestError(`Illegal file path. Must be inside "${this.basePath}".`);
|
|
43
|
+
}
|
|
44
|
+
return fs.readFile(filePath, { encoding: 'utf8' });
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
FileTemplateResolver = __decorate([
|
|
48
|
+
(0, container_1.singleton)({
|
|
49
|
+
defaultArgumentProvider: () => exports.fileTemplateProviderConfig.basePath
|
|
50
|
+
}),
|
|
51
|
+
__param(0, (0, container_1.injectArg)()),
|
|
52
|
+
__metadata("design:paramtypes", [String])
|
|
53
|
+
], FileTemplateResolver);
|
|
54
|
+
exports.FileTemplateResolver = FileTemplateResolver;
|
|
55
|
+
function fileTemplateField(field) {
|
|
56
|
+
return { resolver: 'file', ...field };
|
|
57
|
+
}
|
|
58
|
+
exports.fileTemplateField = fileTemplateField;
|
|
59
|
+
function configureFileTemplateResolver(config = {}) {
|
|
60
|
+
exports.fileTemplateProviderConfig.basePath = config.basePath ?? exports.fileTemplateProviderConfig.basePath;
|
|
61
|
+
}
|
|
62
|
+
exports.configureFileTemplateResolver = configureFileTemplateResolver;
|
|
63
|
+
//# sourceMappingURL=file.template-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.template-resolver.js","sourceRoot":"","sources":["../../../source/templates/resolvers/file.template-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AACxE,qEAA4D;AAC5D,yCAAoC;AAEpC,kCAAkC;AAClC,6BAA6B;AAC7B,sDAAkD;AAElD,4DAAwD;AAQ3C,QAAA,0BAA0B,GAA+B,EAAE,CAAC;AAEzE,MAAa,iBAAmE,SAAQ,8BAAwC;CAG/H;AAFC;IAAC,IAAA,iBAAQ,GAAE;;uDACU;AAFvB,8CAGC;AAKM,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oCAAmC;IAI3E,YAAyB,QAAgB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAwB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvC,MAAM,IAAI,mCAAe,CAAC,sCAAsC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;SACpF;QAED,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAvBY,oBAAoB;IAHhC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAA0B,CAAC,QAAQ;KACnE,CAAC;IAKa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAJb,oBAAoB,CAuBhC;AAvBY,oDAAoB;AAyBjC,SAAgB,iBAAiB,CAAoC,KAAoH;IACvL,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;AACxC,CAAC;AAFD,8CAEC;AAED,SAAgB,6BAA6B,CAAC,SAA8C,EAAE;IAC5F,kCAA0B,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,kCAA0B,CAAC,QAAQ,CAAC;AAC/F,CAAC;AAFD,sEAEC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TypedOmit } from "../../types";
|
|
2
|
+
import { TemplateField } from '../template.model';
|
|
3
|
+
import type { TemplateRenderer, TemplateRendererOptions, TemplateRendererString } from '../template.renderer';
|
|
4
|
+
import { TemplateResolver } from '../template.resolver';
|
|
5
|
+
export declare class StringTemplateField<Renderer extends string = string, Options = any> extends TemplateField<'string', Renderer, Options> {
|
|
6
|
+
template: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class StringTemplateResolver extends TemplateResolver<StringTemplateField> {
|
|
9
|
+
constructor();
|
|
10
|
+
canHandle(resolver: string): boolean;
|
|
11
|
+
resolve(field: StringTemplateField): Promise<string>;
|
|
12
|
+
}
|
|
13
|
+
export declare function stringTemplateField<Renderer extends TemplateRenderer>(field: TypedOmit<StringTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>, 'resolver'>): StringTemplateField<Renderer[TemplateRendererString], Renderer[TemplateRendererOptions]>;
|
|
@@ -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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.stringTemplateField = exports.StringTemplateResolver = exports.StringTemplateField = void 0;
|
|
13
|
+
const container_1 = require("../../container");
|
|
14
|
+
const schema_1 = require("../../schema");
|
|
15
|
+
const template_model_1 = require("../template.model");
|
|
16
|
+
const template_resolver_1 = require("../template.resolver");
|
|
17
|
+
class StringTemplateField extends template_model_1.TemplateField {
|
|
18
|
+
}
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, schema_1.Property)(),
|
|
21
|
+
__metadata("design:type", String)
|
|
22
|
+
], StringTemplateField.prototype, "template", void 0);
|
|
23
|
+
exports.StringTemplateField = StringTemplateField;
|
|
24
|
+
let StringTemplateResolver = class StringTemplateResolver extends template_resolver_1.TemplateResolver {
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
}
|
|
28
|
+
canHandle(resolver) {
|
|
29
|
+
return (resolver == 'string');
|
|
30
|
+
}
|
|
31
|
+
async resolve(field) {
|
|
32
|
+
return field.template;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
StringTemplateResolver = __decorate([
|
|
36
|
+
(0, container_1.singleton)(),
|
|
37
|
+
__metadata("design:paramtypes", [])
|
|
38
|
+
], StringTemplateResolver);
|
|
39
|
+
exports.StringTemplateResolver = StringTemplateResolver;
|
|
40
|
+
function stringTemplateField(field) {
|
|
41
|
+
return { resolver: 'string', ...field };
|
|
42
|
+
}
|
|
43
|
+
exports.stringTemplateField = stringTemplateField;
|
|
44
|
+
//# sourceMappingURL=string.template-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.template-resolver.js","sourceRoot":"","sources":["../../../source/templates/resolvers/string.template-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,yCAAoC;AAEpC,sDAAkD;AAElD,4DAAwD;AAGxD,MAAa,mBAAqE,SAAQ,8BAA0C;CAGnI;AAFC;IAAC,IAAA,iBAAQ,GAAE;;qDACM;AAFnB,kDAGC;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oCAAqC;IAC/E;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;CACF,CAAA;AAZY,sBAAsB;IADlC,IAAA,qBAAS,GAAE;;GACC,sBAAsB,CAYlC;AAZY,wDAAsB;AAcnC,SAAgB,mBAAmB,CAAoC,KAAsH;IAC3L,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;AAC1C,CAAC;AAFD,kDAEC"}
|
|
@@ -8,12 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
12
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
15
|
exports.TemplateRendererProvider = void 0;
|
|
14
16
|
const container_1 = require("../container");
|
|
15
17
|
const tokens_1 = require("./tokens");
|
|
16
|
-
let TemplateRendererProvider =
|
|
18
|
+
let TemplateRendererProvider = class TemplateRendererProvider {
|
|
17
19
|
constructor(renderers) {
|
|
18
20
|
this.renderers = new Set(renderers);
|
|
19
21
|
}
|
|
@@ -37,23 +39,9 @@ let TemplateRendererProvider = TemplateRendererProvider_1 = class TemplateRender
|
|
|
37
39
|
throw new Error(`No renderer for ${type} registered.`);
|
|
38
40
|
}
|
|
39
41
|
};
|
|
40
|
-
TemplateRendererProvider =
|
|
41
|
-
(0, container_1.singleton)(
|
|
42
|
-
|
|
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
|
-
}),
|
|
42
|
+
TemplateRendererProvider = __decorate([
|
|
43
|
+
(0, container_1.singleton)(),
|
|
44
|
+
__param(0, (0, container_1.inject)(tokens_1.TEMPLATE_RENDERERS)),
|
|
57
45
|
__metadata("design:paramtypes", [Array])
|
|
58
46
|
], TemplateRendererProvider);
|
|
59
47
|
exports.TemplateRendererProvider = TemplateRendererProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-renderer.provider.js","sourceRoot":"","sources":["../../source/templates/template-renderer.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template-renderer.provider.js","sourceRoot":"","sources":["../../source/templates/template-renderer.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAgD;AAEhD,qCAA8C;AAGvC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGnC,YAAwC,SAA6B;QACnE,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;IADpC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,kBAAM,EAAC,2BAAkB,CAAC,CAAA;;GAH5B,wBAAwB,CA8BpC;AA9BY,4DAAwB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TemplateResolver } from './template.resolver';
|
|
2
|
+
export declare class TemplateResolverProvider {
|
|
3
|
+
private readonly resolvers;
|
|
4
|
+
constructor(resolvers: TemplateResolver[]);
|
|
5
|
+
register(renderer: TemplateResolver): void;
|
|
6
|
+
has(type: string): boolean;
|
|
7
|
+
get(type: string): TemplateResolver;
|
|
8
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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.TemplateResolverProvider = void 0;
|
|
16
|
+
const container_1 = require("../container");
|
|
17
|
+
const tokens_1 = require("./tokens");
|
|
18
|
+
let TemplateResolverProvider = class TemplateResolverProvider {
|
|
19
|
+
constructor(resolvers) {
|
|
20
|
+
this.resolvers = new Set(resolvers);
|
|
21
|
+
}
|
|
22
|
+
register(renderer) {
|
|
23
|
+
this.resolvers.add(renderer);
|
|
24
|
+
}
|
|
25
|
+
has(type) {
|
|
26
|
+
for (const renderer of this.resolvers) {
|
|
27
|
+
if (renderer.canHandle(type)) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
get(type) {
|
|
34
|
+
for (const renderer of this.resolvers) {
|
|
35
|
+
if (renderer.canHandle(type)) {
|
|
36
|
+
return renderer;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
throw new Error(`No resolver for ${type} registered.`);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
TemplateResolverProvider = __decorate([
|
|
43
|
+
(0, container_1.singleton)(),
|
|
44
|
+
__param(0, (0, container_1.inject)(tokens_1.TEMPLATE_RESOLVERS)),
|
|
45
|
+
__metadata("design:paramtypes", [Array])
|
|
46
|
+
], TemplateResolverProvider);
|
|
47
|
+
exports.TemplateResolverProvider = TemplateResolverProvider;
|
|
48
|
+
//# sourceMappingURL=template-resolver.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-resolver.provider.js","sourceRoot":"","sources":["../../source/templates/template-resolver.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAgD;AAEhD,qCAA8C;AAGvC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGnC,YAAwC,SAA6B;QACnE,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,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC5B,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,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC5B,OAAO,QAAQ,CAAC;aACjB;SACF;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,cAAc,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AA9BY,wBAAwB;IADpC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,kBAAM,EAAC,2BAAkB,CAAC,CAAA;;GAH5B,wBAAwB,CA8BpC;AA9BY,4DAAwB"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { PickBy, Record, SimplifyObject } from "../types";
|
|
2
|
+
export declare class TemplateField<Resolver extends string = string, Renderer extends string = string, Options = any> {
|
|
3
|
+
resolver: Resolver;
|
|
4
|
+
renderer: Renderer;
|
|
4
5
|
options?: Options;
|
|
5
|
-
}
|
|
6
|
-
export declare
|
|
6
|
+
}
|
|
7
|
+
export declare type TemplateFields<Fields extends Record<string, boolean>, Resolver extends string = string, Renderer extends string = string, Options = any> = SimplifyObject<{
|
|
8
|
+
[P in keyof PickBy<Fields, true>]: TemplateField<Resolver, Renderer, Options>;
|
|
9
|
+
} & {
|
|
10
|
+
[P in keyof PickBy<Fields, false>]?: TemplateField<Resolver, Renderer, Options>;
|
|
11
|
+
}>;
|
|
12
|
+
export declare abstract class Template<Fields extends Record<string, boolean> = Record<string, boolean>, TemplateOptions = any> {
|
|
13
|
+
fields: TemplateFields<Fields>;
|
|
14
|
+
options?: TemplateOptions;
|
|
15
|
+
}
|