@memberjunction/templates 1.8.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/TemplateEngine.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare class TemplateEntityLoader extends nunjucks.Loader {
|
|
|
13
13
|
* @param templateId
|
|
14
14
|
* @param template
|
|
15
15
|
*/
|
|
16
|
-
AddTemplate(templateId:
|
|
16
|
+
AddTemplate(templateId: string, template: TemplateEntityExtended): void;
|
|
17
17
|
/**
|
|
18
18
|
* This method is required to be implemented by a subclass of Loader. It is used to get the source of a template by name.
|
|
19
19
|
* @param name - this is actually the templateId but nunjucks calls it name and makes it a string, we handle it as a number internally
|
|
@@ -26,9 +26,15 @@ export declare class TemplateEntityLoader extends nunjucks.Loader {
|
|
|
26
26
|
*/
|
|
27
27
|
export declare class TemplateEngineServer extends TemplateEngineBase {
|
|
28
28
|
static get Instance(): TemplateEngineServer;
|
|
29
|
+
private _oneTimeLoadingComplete;
|
|
29
30
|
protected AdditionalLoading(contextUser?: UserInfo): Promise<void>;
|
|
31
|
+
SetupNunjucks(): void;
|
|
30
32
|
private _nunjucksEnv;
|
|
31
33
|
private _templateLoader;
|
|
34
|
+
/**
|
|
35
|
+
* Cache for templates that have been created by nunjucks so we don't have to create them over and over
|
|
36
|
+
*/
|
|
37
|
+
private _templateCache;
|
|
32
38
|
AddTemplate(templateEntity: TemplateEntityExtended): void;
|
|
33
39
|
/**
|
|
34
40
|
* Renders a template with the given data.
|
|
@@ -36,7 +42,15 @@ export declare class TemplateEngineServer extends TemplateEngineBase {
|
|
|
36
42
|
* @param templateContent the template content item (within the template)
|
|
37
43
|
* @param data
|
|
38
44
|
*/
|
|
39
|
-
RenderTemplate(templateEntity: TemplateEntityExtended, templateContent: TemplateContentEntity, data: any): Promise<TemplateRenderResult>;
|
|
45
|
+
RenderTemplate(templateEntity: TemplateEntityExtended, templateContent: TemplateContentEntity, data: any, SkipValidation?: boolean): Promise<TemplateRenderResult>;
|
|
46
|
+
/**
|
|
47
|
+
* This method is responsible for creating a new Nunjucks template, caching it, and returning it.
|
|
48
|
+
* If the templateContentId already had a template created, it will return that template from the cache.
|
|
49
|
+
* @param templateId
|
|
50
|
+
* @param templateText
|
|
51
|
+
*/
|
|
52
|
+
protected getNunjucksTemplate(templateContentId: string, templateText: string): any;
|
|
53
|
+
ClearTemplateCache(): void;
|
|
40
54
|
/**
|
|
41
55
|
* Promisifies the Nunjucks template rendering process.
|
|
42
56
|
* @param template the Nunjucks template object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,QAAQ,EAAuB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAEvH;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ,CAAC,MAAM;IAC9C,KAAK,EAAE,IAAI,CAAC;IAEnB,OAAO,CAAC,SAAS,CAAwD;IAEzE;;;;OAIG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB;IAIvE;;;;OAIG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;CAW/C;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IACxD,WAAkB,QAAQ,IAAI,oBAAoB,CAEjD;IAED,OAAO,CAAC,uBAAuB,CAAkB;cACjC,iBAAiB,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBjE,aAAa,IAAI,IAAI;IAK5B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAE9C;;OAEG;IACH,OAAO,CAAC,cAAc,CAA4C;IAE3D,WAAW,CAAC,cAAc,EAAE,sBAAsB;IAKzD;;;;;OAKG;IACU,cAAc,CAAC,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgD/K;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,GAAG;IAS5E,kBAAkB;IAIzB;;;;OAIG;cACa,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;CAW/F"}
|
package/dist/TemplateEngine.js
CHANGED
|
@@ -66,27 +66,42 @@ exports.TemplateEntityLoader = TemplateEntityLoader;
|
|
|
66
66
|
* TemplateEngine is used for accessing template metadata/caching it, and rendering templates
|
|
67
67
|
*/
|
|
68
68
|
class TemplateEngineServer extends templates_base_types_1.TemplateEngineBase {
|
|
69
|
+
constructor() {
|
|
70
|
+
super(...arguments);
|
|
71
|
+
this._oneTimeLoadingComplete = false;
|
|
72
|
+
/**
|
|
73
|
+
* Cache for templates that have been created by nunjucks so we don't have to create them over and over
|
|
74
|
+
*/
|
|
75
|
+
this._templateCache = new Map();
|
|
76
|
+
}
|
|
69
77
|
static get Instance() {
|
|
70
78
|
return super.getInstance();
|
|
71
79
|
}
|
|
72
80
|
async AdditionalLoading(contextUser) {
|
|
81
|
+
// pass along the call to our base class so it can do whatever it wants
|
|
73
82
|
await super.AdditionalLoading(contextUser);
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
this.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
// clear our template cache as we are going to reload all of the templates
|
|
84
|
+
this.ClearTemplateCache();
|
|
85
|
+
if (!this._oneTimeLoadingComplete) {
|
|
86
|
+
this._oneTimeLoadingComplete = true; // flag to make sure we don't do this again
|
|
87
|
+
// do this after the templates are loaded and doing it inside AdditionalLoading() ensures it is done after the templates are loaded and
|
|
88
|
+
// only done once
|
|
89
|
+
this._templateLoader = new TemplateEntityLoader();
|
|
90
|
+
this._nunjucksEnv = new nunjucks.Environment(this._templateLoader, { autoescape: true, dev: true });
|
|
91
|
+
// get all of the extensions that are registered and register them with nunjucks
|
|
92
|
+
const extensions = global_1.MJGlobal.Instance.ClassFactory.GetAllRegistrations(TemplateExtensionBase_1.TemplateExtensionBase);
|
|
93
|
+
if (extensions && extensions.length > 0) {
|
|
94
|
+
for (const ext of extensions) {
|
|
95
|
+
const instance = new ext.SubClass(contextUser);
|
|
96
|
+
this._nunjucksEnv.addExtension(ext.Key, instance);
|
|
97
|
+
}
|
|
84
98
|
}
|
|
85
|
-
// const aiPromptExtension = new AIPromptExtension();
|
|
86
|
-
// aiPromptExtension._contextUser = contextUser;
|
|
87
|
-
// this._nunjucksEnv.addExtension('AIPrompt', aiPromptExtension);
|
|
88
99
|
}
|
|
89
100
|
}
|
|
101
|
+
SetupNunjucks() {
|
|
102
|
+
this._templateLoader = new TemplateEntityLoader();
|
|
103
|
+
this._nunjucksEnv = new nunjucks.Environment(this._templateLoader, { autoescape: true, dev: true });
|
|
104
|
+
}
|
|
90
105
|
AddTemplate(templateEntity) {
|
|
91
106
|
this._templateLoader.AddTemplate(templateEntity.ID, templateEntity);
|
|
92
107
|
}
|
|
@@ -96,7 +111,7 @@ class TemplateEngineServer extends templates_base_types_1.TemplateEngineBase {
|
|
|
96
111
|
* @param templateContent the template content item (within the template)
|
|
97
112
|
* @param data
|
|
98
113
|
*/
|
|
99
|
-
async RenderTemplate(templateEntity, templateContent, data) {
|
|
114
|
+
async RenderTemplate(templateEntity, templateContent, data, SkipValidation) {
|
|
100
115
|
try {
|
|
101
116
|
if (!templateContent) {
|
|
102
117
|
return {
|
|
@@ -105,15 +120,26 @@ class TemplateEngineServer extends templates_base_types_1.TemplateEngineBase {
|
|
|
105
120
|
Message: 'templateContent variable is required'
|
|
106
121
|
};
|
|
107
122
|
}
|
|
108
|
-
|
|
109
|
-
if (!valResult.Success) {
|
|
123
|
+
if (!templateContent.TemplateText) {
|
|
110
124
|
return {
|
|
111
125
|
Success: false,
|
|
112
126
|
Output: null,
|
|
113
|
-
Message:
|
|
127
|
+
Message: 'TemplateContent.TemplateText variable is required'
|
|
114
128
|
};
|
|
115
129
|
}
|
|
116
|
-
|
|
130
|
+
if (!SkipValidation) {
|
|
131
|
+
const valResult = templateEntity.ValidateTemplateInput(data);
|
|
132
|
+
if (!valResult.Success) {
|
|
133
|
+
return {
|
|
134
|
+
Success: false,
|
|
135
|
+
Output: null,
|
|
136
|
+
Message: valResult.Errors.map((error) => {
|
|
137
|
+
return error.Message;
|
|
138
|
+
}).join(', ')
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const template = this.getNunjucksTemplate(templateContent.ID, templateContent.TemplateText);
|
|
117
143
|
const result = await this.renderTemplateAsync(template, data);
|
|
118
144
|
return {
|
|
119
145
|
Success: true,
|
|
@@ -129,6 +155,23 @@ class TemplateEngineServer extends templates_base_types_1.TemplateEngineBase {
|
|
|
129
155
|
};
|
|
130
156
|
}
|
|
131
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* This method is responsible for creating a new Nunjucks template, caching it, and returning it.
|
|
160
|
+
* If the templateContentId already had a template created, it will return that template from the cache.
|
|
161
|
+
* @param templateId
|
|
162
|
+
* @param templateText
|
|
163
|
+
*/
|
|
164
|
+
getNunjucksTemplate(templateContentId, templateText) {
|
|
165
|
+
let template = this._templateCache.get(templateContentId);
|
|
166
|
+
if (!template) {
|
|
167
|
+
template = new nunjucks.Template(templateText, this._nunjucksEnv);
|
|
168
|
+
this._templateCache.set(templateContentId, template);
|
|
169
|
+
}
|
|
170
|
+
return template;
|
|
171
|
+
}
|
|
172
|
+
ClearTemplateCache() {
|
|
173
|
+
this._templateCache.clear();
|
|
174
|
+
}
|
|
132
175
|
/**
|
|
133
176
|
* Promisifies the Nunjucks template rendering process.
|
|
134
177
|
* @param template the Nunjucks template object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,mDAAqC;AACrC,mDAAkD;AAClD,8EAA2E;AAC3E,+EAAuH;AAEvH;;GAEG;AACH,MAAa,oBAAqB,SAAQ,QAAQ,CAAC,MAAM;IAAzD;;QAGY,cAAS,GAAqD,EAAE,CAAC;IA2B7E,CAAC;IAzBG;;;;OAIG;IACI,WAAW,CAAC,UAAkB,EAAE,QAAgC;QACnE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,IAAY,EAAE,QAAa;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC;gBACL,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ;AA9BD,oDA8BC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,yCAAkB;
|
|
1
|
+
{"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/templates",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "MemberJunction Templating Engine and Utilities - Used for any application that requires templating utility functionality. NOTE: this package does use Angular Universal for compilation but is not marked with the usual ng prefix because it is a server-side library and not used within Angular apps.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"typescript": "^5.4.5"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@memberjunction/core": "
|
|
22
|
-
"@memberjunction/templates-base-types": "
|
|
23
|
-
"@memberjunction/ai": "
|
|
24
|
-
"@memberjunction/aiengine": "
|
|
25
|
-
"@memberjunction/ai-groq": "
|
|
26
|
-
"@memberjunction/core-entities": "
|
|
27
|
-
"@memberjunction/global": "
|
|
21
|
+
"@memberjunction/core": "2.0.0",
|
|
22
|
+
"@memberjunction/templates-base-types": "2.0.0",
|
|
23
|
+
"@memberjunction/ai": "2.0.0",
|
|
24
|
+
"@memberjunction/aiengine": "2.0.0",
|
|
25
|
+
"@memberjunction/ai-groq": "2.0.0",
|
|
26
|
+
"@memberjunction/core-entities": "2.0.0",
|
|
27
|
+
"@memberjunction/global": "2.0.0",
|
|
28
28
|
"nunjucks": "3.2.4"
|
|
29
29
|
}
|
|
30
30
|
}
|