@tsed/platform-views 7.0.0-beta.5 → 7.0.0-beta.8
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.
|
@@ -5,6 +5,7 @@ exports.PlatformViews = void 0;
|
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const core_1 = require("@tsed/core");
|
|
7
7
|
const di_1 = require("@tsed/di");
|
|
8
|
+
const engines_1 = require("@tsed/engines");
|
|
8
9
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
9
10
|
const path_1 = require("path");
|
|
10
11
|
const PlatformViewsSettings_1 = require("../domain/PlatformViewsSettings");
|
|
@@ -19,14 +20,6 @@ async function patchEJS(ejs) {
|
|
|
19
20
|
}
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
|
-
async function tryImport(name) {
|
|
23
|
-
try {
|
|
24
|
-
return await Promise.resolve().then(() => tslib_1.__importStar(require(name)));
|
|
25
|
-
}
|
|
26
|
-
catch (er) {
|
|
27
|
-
// istanbul ignore next
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
23
|
/**
|
|
31
24
|
* @platform
|
|
32
25
|
*/
|
|
@@ -42,48 +35,23 @@ let PlatformViews = class PlatformViews {
|
|
|
42
35
|
...PlatformViewsSettings_1.PLATFORM_VIEWS_EXTENSIONS,
|
|
43
36
|
...this.extensionsOptions
|
|
44
37
|
})), "f");
|
|
45
|
-
await this.
|
|
46
|
-
await this.loadFromTsedEngines();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* @deprecated
|
|
51
|
-
*/
|
|
52
|
-
async loadFromConsolidate() {
|
|
53
|
-
const cons = await tryImport("consolidate");
|
|
54
|
-
if (cons) {
|
|
55
|
-
cons.requires.ejs = await patchEJS(cons.requires.ejs);
|
|
56
|
-
tslib_1.__classPrivateFieldGet(this, _PlatformViews_extensions, "f").forEach((engineType) => {
|
|
57
|
-
if (cons[engineType]) {
|
|
58
|
-
const options = this.getEngineOptions(engineType);
|
|
59
|
-
if (options.requires) {
|
|
60
|
-
cons.requires[engineType] = options.requires;
|
|
61
|
-
}
|
|
62
|
-
this.registerEngine(engineType, {
|
|
63
|
-
options,
|
|
64
|
-
render: cons[engineType]
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
});
|
|
38
|
+
await this.loadEngines();
|
|
68
39
|
}
|
|
69
40
|
}
|
|
70
|
-
async
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
if (options.requires) {
|
|
78
|
-
tsed.requires.set(engineType, options.requires);
|
|
79
|
-
}
|
|
80
|
-
this.registerEngine(engineType, {
|
|
81
|
-
options,
|
|
82
|
-
render: tsed.getEngine(engineType)
|
|
83
|
-
});
|
|
41
|
+
async loadEngines() {
|
|
42
|
+
engines_1.requires.set("ejs", await patchEJS(engines_1.requires.get("ejs")));
|
|
43
|
+
tslib_1.__classPrivateFieldGet(this, _PlatformViews_extensions, "f").forEach((engineType) => {
|
|
44
|
+
if (engines_1.engines.has(engineType)) {
|
|
45
|
+
const options = this.getEngineOptions(engineType);
|
|
46
|
+
if (options.requires) {
|
|
47
|
+
engines_1.requires.set(engineType, options.requires);
|
|
84
48
|
}
|
|
85
|
-
|
|
86
|
-
|
|
49
|
+
this.registerEngine(engineType, {
|
|
50
|
+
options,
|
|
51
|
+
render: (0, engines_1.getEngine)(engineType)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
87
55
|
}
|
|
88
56
|
getEngines() {
|
|
89
57
|
return [...tslib_1.__classPrivateFieldGet(this, _PlatformViews_extensions, "f").entries()].map(([extension, engineType]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformViews.js","sourceRoot":"","sources":["../../../src/services/PlatformViews.ts"],"names":[],"mappings":";;;;;AAAA,qCAAyC;AACzC,iCAA0C;AAC1C,oDAAoB;AACpB,+BAA4C;AAC5C,2EAKyC;AAEzC,KAAK,UAAU,QAAQ,CAAC,GAAQ;IAC9B,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,GAAG,GAAG,gEAAa,KAAK,GAAC,CAAC;QAChC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;KACnB;IAED,OAAO;QACL,OAAO,CAAC,GAAW,EAAE,EAAC,MAAM,EAAE,GAAG,OAAO,EAAM;YAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"PlatformViews.js","sourceRoot":"","sources":["../../../src/services/PlatformViews.ts"],"names":[],"mappings":"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","sourcesContent":["import {Env, getValue} from \"@tsed/core\";\nimport {Constant, Module} from \"@tsed/di\";\nimport {engines, getEngine, requires} from \"@tsed/engines\";\nimport Fs from \"fs\";\nimport {extname, join, resolve} from \"path\";\nimport {\n PLATFORM_VIEWS_EXTENSIONS,\n PlatformViewEngine,\n PlatformViewsEngineOptions,\n PlatformViewsExtensionsTypes\n} from \"../domain/PlatformViewsSettings\";\n\nasync function patchEJS(ejs: any) {\n if (!ejs) {\n const mod = await import(\"ejs\");\n ejs = mod.default;\n }\n\n return {\n compile(str: string, {client, ...options}: any) {\n return ejs.compile(str, options);\n }\n };\n}\n\n/**\n * @platform\n */\n@Module({\n views: {\n exists: true\n }\n})\nexport class PlatformViews {\n @Constant(\"env\")\n env: Env;\n\n @Constant(\"views.root\", `${process.cwd()}/views`)\n readonly root: string;\n\n @Constant(\"views.cache\")\n readonly cache: boolean;\n\n @Constant(\"views.disabled\", false)\n readonly disabled: string;\n\n @Constant(\"views.viewEngine\", \"ejs\")\n readonly viewEngine: string;\n\n @Constant(\"views.extensions\", {})\n protected extensionsOptions: PlatformViewsExtensionsTypes;\n\n @Constant(\"views.options\", {})\n protected engineOptions: Record<string, PlatformViewsEngineOptions>;\n\n #extensions: Map<string, string>;\n #engines = new Map<string, PlatformViewEngine>();\n #cachePaths = new Map<string, {path: string; extension: string}>();\n\n async $onInit() {\n if (!this.disabled) {\n this.#extensions = new Map(\n Object.entries({\n ...PLATFORM_VIEWS_EXTENSIONS,\n ...this.extensionsOptions\n })\n );\n\n await this.loadEngines();\n }\n }\n\n async loadEngines() {\n requires.set(\"ejs\", await patchEJS(requires.get(\"ejs\")));\n\n this.#extensions.forEach((engineType) => {\n if (engines.has(engineType)) {\n const options = this.getEngineOptions(engineType);\n\n if (options.requires) {\n requires.set(engineType, options.requires);\n }\n\n this.registerEngine(engineType, {\n options,\n render: getEngine(engineType)\n });\n }\n });\n }\n\n getEngines() {\n return [...this.#extensions.entries()].map(([extension, engineType]) => {\n const engine = this.getEngine(this.getExtension(engineType))!;\n\n return {\n extension,\n engine\n };\n });\n }\n\n registerEngine(engineType: string, engine: PlatformViewEngine) {\n this.#engines.set(engineType, engine);\n\n return this;\n }\n\n getEngine(type: string) {\n return this.#engines.get(this.#extensions.get(type) || type);\n }\n\n getEngineOptions(engineType: string): PlatformViewsEngineOptions {\n return getValue(this.engineOptions, engineType, {});\n }\n\n async render(viewPath: string, options: any = {}): Promise<string> {\n const {path, extension} = this.#cachePaths.get(viewPath) || this.#cachePaths.set(viewPath, this.resolve(viewPath)).get(viewPath)!;\n const engine = this.getEngine(extension);\n\n if (!engine) {\n throw new Error(`Engine not found to render the following \"${viewPath}\"`);\n }\n\n return engine.render(path, Object.assign({cache: this.cache || this.env === Env.PROD}, engine.options, options));\n }\n\n protected getExtension(viewPath: string) {\n return (extname(viewPath) || this.viewEngine).replace(/\\./, \"\");\n }\n\n protected resolve(viewPath: string) {\n const extension = this.getExtension(viewPath);\n\n viewPath = viewPath.replace(extname(viewPath), \"\") + \".\" + extension;\n\n const path =\n [\n viewPath,\n resolve(join(this.root, viewPath)),\n resolve(join(process.cwd(), \"views\", viewPath)),\n resolve(join(process.cwd(), \"public\", viewPath))\n ].find((file) => Fs.existsSync(file)) || viewPath;\n\n return {\n path,\n extension\n };\n }\n}\n"]}
|
|
@@ -2,6 +2,7 @@ var _PlatformViews_extensions, _PlatformViews_engines, _PlatformViews_cachePaths
|
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate, __metadata } from "tslib";
|
|
3
3
|
import { Env, getValue } from "@tsed/core";
|
|
4
4
|
import { Constant, Module } from "@tsed/di";
|
|
5
|
+
import { engines, getEngine, requires } from "@tsed/engines";
|
|
5
6
|
import Fs from "fs";
|
|
6
7
|
import { extname, join, resolve } from "path";
|
|
7
8
|
import { PLATFORM_VIEWS_EXTENSIONS } from "../domain/PlatformViewsSettings.js";
|
|
@@ -16,14 +17,6 @@ async function patchEJS(ejs) {
|
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
}
|
|
19
|
-
async function tryImport(name) {
|
|
20
|
-
try {
|
|
21
|
-
return await import(name);
|
|
22
|
-
}
|
|
23
|
-
catch (er) {
|
|
24
|
-
// istanbul ignore next
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
20
|
/**
|
|
28
21
|
* @platform
|
|
29
22
|
*/
|
|
@@ -39,48 +32,23 @@ let PlatformViews = class PlatformViews {
|
|
|
39
32
|
...PLATFORM_VIEWS_EXTENSIONS,
|
|
40
33
|
...this.extensionsOptions
|
|
41
34
|
})), "f");
|
|
42
|
-
await this.
|
|
43
|
-
await this.loadFromTsedEngines();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* @deprecated
|
|
48
|
-
*/
|
|
49
|
-
async loadFromConsolidate() {
|
|
50
|
-
const cons = await tryImport("consolidate");
|
|
51
|
-
if (cons) {
|
|
52
|
-
cons.requires.ejs = await patchEJS(cons.requires.ejs);
|
|
53
|
-
__classPrivateFieldGet(this, _PlatformViews_extensions, "f").forEach((engineType) => {
|
|
54
|
-
if (cons[engineType]) {
|
|
55
|
-
const options = this.getEngineOptions(engineType);
|
|
56
|
-
if (options.requires) {
|
|
57
|
-
cons.requires[engineType] = options.requires;
|
|
58
|
-
}
|
|
59
|
-
this.registerEngine(engineType, {
|
|
60
|
-
options,
|
|
61
|
-
render: cons[engineType]
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
});
|
|
35
|
+
await this.loadEngines();
|
|
65
36
|
}
|
|
66
37
|
}
|
|
67
|
-
async
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
if (options.requires) {
|
|
75
|
-
tsed.requires.set(engineType, options.requires);
|
|
76
|
-
}
|
|
77
|
-
this.registerEngine(engineType, {
|
|
78
|
-
options,
|
|
79
|
-
render: tsed.getEngine(engineType)
|
|
80
|
-
});
|
|
38
|
+
async loadEngines() {
|
|
39
|
+
requires.set("ejs", await patchEJS(requires.get("ejs")));
|
|
40
|
+
__classPrivateFieldGet(this, _PlatformViews_extensions, "f").forEach((engineType) => {
|
|
41
|
+
if (engines.has(engineType)) {
|
|
42
|
+
const options = this.getEngineOptions(engineType);
|
|
43
|
+
if (options.requires) {
|
|
44
|
+
requires.set(engineType, options.requires);
|
|
81
45
|
}
|
|
82
|
-
|
|
83
|
-
|
|
46
|
+
this.registerEngine(engineType, {
|
|
47
|
+
options,
|
|
48
|
+
render: getEngine(engineType)
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
});
|
|
84
52
|
}
|
|
85
53
|
getEngines() {
|
|
86
54
|
return [...__classPrivateFieldGet(this, _PlatformViews_extensions, "f").entries()].map(([extension, engineType]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlatformViews.js","sourceRoot":"","sources":["../../../src/services/PlatformViews.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AAC5C,OAAO,EACL,yBAAyB,EAI1B,MAAM,iCAAiC,CAAC;AAEzC,KAAK,UAAU,QAAQ,CAAC,GAAQ;IAC9B,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;KACnB;IAED,OAAO;QACL,OAAO,CAAC,GAAW,EAAE,EAAC,MAAM,EAAE,GAAG,OAAO,EAAM;YAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"PlatformViews.js","sourceRoot":"","sources":["../../../src/services/PlatformViews.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAC,GAAG,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AAC5C,OAAO,EACL,yBAAyB,EAI1B,MAAM,iCAAiC,CAAC;AAEzC,KAAK,UAAU,QAAQ,CAAC,GAAQ;IAC9B,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;KACnB;IAED,OAAO;QACL,OAAO,CAAC,GAAW,EAAE,EAAC,MAAM,EAAE,GAAG,OAAO,EAAM;YAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AAMH,IAAa,aAAa,GAA1B,MAAa,aAAa;IAA1B;QAsBE,4CAAiC;QACjC,iCAAW,IAAI,GAAG,EAA8B,EAAC;QACjD,oCAAc,IAAI,GAAG,EAA6C,EAAC;IA4FrE,CAAC;IA1FC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,uBAAA,IAAI,6BAAe,IAAI,GAAG,CACxB,MAAM,CAAC,OAAO,CAAC;gBACb,GAAG,yBAAyB;gBAC5B,GAAG,IAAI,CAAC,iBAAiB;aAC1B,CAAC,CACH,MAAA,CAAC;YAEF,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEzD,uBAAA,IAAI,iCAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAElD,IAAI,OAAO,CAAC,QAAQ,EAAE;oBACpB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAC5C;gBAED,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;oBAC9B,OAAO;oBACP,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC;iBAC9B,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,uBAAA,IAAI,iCAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;YACrE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAE,CAAC;YAE9D,OAAO;gBACL,SAAS;gBACT,MAAM;aACP,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,UAAkB,EAAE,MAA0B;QAC3D,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,uBAAA,IAAI,iCAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB,CAAC,UAAkB;QACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,UAAe,EAAE;QAC9C,MAAM,EAAC,IAAI,EAAE,SAAS,EAAC,GAAG,uBAAA,IAAI,iCAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,uBAAA,IAAI,iCAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAClI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,GAAG,CAAC,CAAC;SAC3E;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACnH,CAAC;IAES,YAAY,CAAC,QAAgB;QACrC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAES,OAAO,CAAC,QAAgB;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE9C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC;QAErE,MAAM,IAAI,GACR;YACE,QAAQ;YACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACjD,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC;QAEpD,OAAO;YACL,IAAI;YACJ,SAAS;SACV,CAAC;IACJ,CAAC;CACF,CAAA;;AAlHC;IADC,QAAQ,CAAC,KAAK,CAAC;;0CACP;AAGT;IADC,QAAQ,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;;2CAC3B;AAGtB;IADC,QAAQ,CAAC,aAAa,CAAC;;4CACA;AAGxB;IADC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;;+CACR;AAG1B;IADC,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC;;iDACR;AAG5B;IADC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC;;wDACyB;AAG1D;IADC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC;;oDACsC;AApBzD,aAAa;IALzB,MAAM,CAAC;QACN,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;SACb;KACF,CAAC;GACW,aAAa,CAoHzB;SApHY,aAAa","sourcesContent":["import {Env, getValue} from \"@tsed/core\";\nimport {Constant, Module} from \"@tsed/di\";\nimport {engines, getEngine, requires} from \"@tsed/engines\";\nimport Fs from \"fs\";\nimport {extname, join, resolve} from \"path\";\nimport {\n PLATFORM_VIEWS_EXTENSIONS,\n PlatformViewEngine,\n PlatformViewsEngineOptions,\n PlatformViewsExtensionsTypes\n} from \"../domain/PlatformViewsSettings\";\n\nasync function patchEJS(ejs: any) {\n if (!ejs) {\n const mod = await import(\"ejs\");\n ejs = mod.default;\n }\n\n return {\n compile(str: string, {client, ...options}: any) {\n return ejs.compile(str, options);\n }\n };\n}\n\n/**\n * @platform\n */\n@Module({\n views: {\n exists: true\n }\n})\nexport class PlatformViews {\n @Constant(\"env\")\n env: Env;\n\n @Constant(\"views.root\", `${process.cwd()}/views`)\n readonly root: string;\n\n @Constant(\"views.cache\")\n readonly cache: boolean;\n\n @Constant(\"views.disabled\", false)\n readonly disabled: string;\n\n @Constant(\"views.viewEngine\", \"ejs\")\n readonly viewEngine: string;\n\n @Constant(\"views.extensions\", {})\n protected extensionsOptions: PlatformViewsExtensionsTypes;\n\n @Constant(\"views.options\", {})\n protected engineOptions: Record<string, PlatformViewsEngineOptions>;\n\n #extensions: Map<string, string>;\n #engines = new Map<string, PlatformViewEngine>();\n #cachePaths = new Map<string, {path: string; extension: string}>();\n\n async $onInit() {\n if (!this.disabled) {\n this.#extensions = new Map(\n Object.entries({\n ...PLATFORM_VIEWS_EXTENSIONS,\n ...this.extensionsOptions\n })\n );\n\n await this.loadEngines();\n }\n }\n\n async loadEngines() {\n requires.set(\"ejs\", await patchEJS(requires.get(\"ejs\")));\n\n this.#extensions.forEach((engineType) => {\n if (engines.has(engineType)) {\n const options = this.getEngineOptions(engineType);\n\n if (options.requires) {\n requires.set(engineType, options.requires);\n }\n\n this.registerEngine(engineType, {\n options,\n render: getEngine(engineType)\n });\n }\n });\n }\n\n getEngines() {\n return [...this.#extensions.entries()].map(([extension, engineType]) => {\n const engine = this.getEngine(this.getExtension(engineType))!;\n\n return {\n extension,\n engine\n };\n });\n }\n\n registerEngine(engineType: string, engine: PlatformViewEngine) {\n this.#engines.set(engineType, engine);\n\n return this;\n }\n\n getEngine(type: string) {\n return this.#engines.get(this.#extensions.get(type) || type);\n }\n\n getEngineOptions(engineType: string): PlatformViewsEngineOptions {\n return getValue(this.engineOptions, engineType, {});\n }\n\n async render(viewPath: string, options: any = {}): Promise<string> {\n const {path, extension} = this.#cachePaths.get(viewPath) || this.#cachePaths.set(viewPath, this.resolve(viewPath)).get(viewPath)!;\n const engine = this.getEngine(extension);\n\n if (!engine) {\n throw new Error(`Engine not found to render the following \"${viewPath}\"`);\n }\n\n return engine.render(path, Object.assign({cache: this.cache || this.env === Env.PROD}, engine.options, options));\n }\n\n protected getExtension(viewPath: string) {\n return (extname(viewPath) || this.viewEngine).replace(/\\./, \"\");\n }\n\n protected resolve(viewPath: string) {\n const extension = this.getExtension(viewPath);\n\n viewPath = viewPath.replace(extname(viewPath), \"\") + \".\" + extension;\n\n const path =\n [\n viewPath,\n resolve(join(this.root, viewPath)),\n resolve(join(process.cwd(), \"views\", viewPath)),\n resolve(join(process.cwd(), \"public\", viewPath))\n ].find((file) => Fs.existsSync(file)) || viewPath;\n\n return {\n path,\n extension\n };\n }\n}\n"]}
|
|
@@ -13,11 +13,7 @@ export declare class PlatformViews {
|
|
|
13
13
|
protected extensionsOptions: PlatformViewsExtensionsTypes;
|
|
14
14
|
protected engineOptions: Record<string, PlatformViewsEngineOptions>;
|
|
15
15
|
$onInit(): Promise<void>;
|
|
16
|
-
|
|
17
|
-
* @deprecated
|
|
18
|
-
*/
|
|
19
|
-
loadFromConsolidate(): Promise<void>;
|
|
20
|
-
loadFromTsedEngines(): Promise<void>;
|
|
16
|
+
loadEngines(): Promise<void>;
|
|
21
17
|
getEngines(): {
|
|
22
18
|
extension: string;
|
|
23
19
|
engine: PlatformViewEngine;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/platform-views",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.8",
|
|
4
4
|
"description": "Views module for Ts.ED Framework",
|
|
5
5
|
"private": false,
|
|
6
6
|
"source": "./src/index.ts",
|
|
@@ -20,25 +20,23 @@
|
|
|
20
20
|
"barrels": "yarn barrelsby --delete -d ./src -e \"\\.spec\\.ts\" -e \"__mock__\" -e \".benchmark.ts\""
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"
|
|
23
|
+
"@tsed/engines": "7.0.0-beta.8",
|
|
24
24
|
"ejs": "^3.1.5",
|
|
25
25
|
"tslib": "2.3.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@tsed/core": "7.0.0-beta.
|
|
29
|
-
"@tsed/di": "7.0.0-beta.
|
|
30
|
-
"@tsed/
|
|
31
|
-
"@tsed/
|
|
32
|
-
"@tsed/schema": "7.0.0-beta.5",
|
|
28
|
+
"@tsed/core": "7.0.0-beta.8",
|
|
29
|
+
"@tsed/di": "7.0.0-beta.8",
|
|
30
|
+
"@tsed/exceptions": "7.0.0-beta.8",
|
|
31
|
+
"@tsed/schema": "7.0.0-beta.8",
|
|
33
32
|
"@types/consolidate": "0.14.1",
|
|
34
33
|
"@types/ejs": "3.1.0"
|
|
35
34
|
},
|
|
36
35
|
"peerDependencies": {
|
|
37
|
-
"@tsed/core": "^7.0.0-beta.
|
|
38
|
-
"@tsed/di": "^7.0.0-beta.
|
|
39
|
-
"@tsed/
|
|
40
|
-
"@tsed/
|
|
41
|
-
"@tsed/schema": "^7.0.0-beta.5"
|
|
36
|
+
"@tsed/core": "^7.0.0-beta.8",
|
|
37
|
+
"@tsed/di": "^7.0.0-beta.8",
|
|
38
|
+
"@tsed/exceptions": "^7.0.0-beta.8",
|
|
39
|
+
"@tsed/schema": "^7.0.0-beta.8"
|
|
42
40
|
},
|
|
43
41
|
"peerDependenciesMeta": {
|
|
44
42
|
"@tsed/core": {
|
|
@@ -52,16 +50,13 @@
|
|
|
52
50
|
},
|
|
53
51
|
"@tsed/schema": {
|
|
54
52
|
"optional": false
|
|
55
|
-
},
|
|
56
|
-
"@tsed/engines": {
|
|
57
|
-
"optional": true
|
|
58
53
|
}
|
|
59
54
|
},
|
|
60
55
|
"repository": "https://github.com/tsedio/tsed",
|
|
61
56
|
"bugs": {
|
|
62
57
|
"url": "https://github.com/tsedio/tsed/issues"
|
|
63
58
|
},
|
|
64
|
-
"homepage": "https://github.com/tsedio/tsed/tree/
|
|
59
|
+
"homepage": "https://github.com/tsedio/tsed/tree/beta/packages/platform/platform-views",
|
|
65
60
|
"author": "Romain Lenzotti",
|
|
66
61
|
"license": "MIT"
|
|
67
62
|
}
|