@tsed/engines 6.114.15 → 6.114.18
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/.nycrc +3 -3
- package/lib/cjs/components/DustEngine.js +2 -5
- package/lib/cjs/components/DustEngine.js.map +1 -1
- package/lib/cjs/components/Engine.js +3 -0
- package/lib/cjs/components/Engine.js.map +1 -1
- package/lib/cjs/components/TwingEngine.js +1 -0
- package/lib/cjs/components/TwingEngine.js.map +1 -1
- package/lib/cjs/components/VueEngine.js +3 -8
- package/lib/cjs/components/VueEngine.js.map +1 -1
- package/lib/cjs/registries/EnginesContainer.js +7 -12
- package/lib/cjs/registries/EnginesContainer.js.map +1 -1
- package/lib/esm/components/DustEngine.js +2 -5
- package/lib/esm/components/DustEngine.js.map +1 -1
- package/lib/esm/components/Engine.js +3 -0
- package/lib/esm/components/Engine.js.map +1 -1
- package/lib/esm/components/TwingEngine.js +1 -0
- package/lib/esm/components/TwingEngine.js.map +1 -1
- package/lib/esm/components/VueEngine.js +4 -9
- package/lib/esm/components/VueEngine.js.map +1 -1
- package/lib/esm/registries/EnginesContainer.js +7 -12
- package/lib/esm/registries/EnginesContainer.js.map +1 -1
- package/package.json +2 -2
package/.nycrc
CHANGED
|
@@ -8,11 +8,8 @@ const viewEngine_1 = require("../decorators/viewEngine");
|
|
|
8
8
|
const Engine_1 = require("./Engine");
|
|
9
9
|
const util_1 = require("util");
|
|
10
10
|
let DustEngine = class DustEngine extends Engine_1.Engine {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.views = ".";
|
|
14
|
-
this.ext = "dust";
|
|
15
|
-
}
|
|
11
|
+
views = ".";
|
|
12
|
+
ext = "dust";
|
|
16
13
|
configure(options) {
|
|
17
14
|
if (options) {
|
|
18
15
|
if (options.ext) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DustEngine.js","sourceRoot":"","sources":["../../../src/components/DustEngine.ts"],"names":[],"mappings":";;;;AAAA,0CAAoC;AACpC,+BAA6B;AAC7B,yDAAoD;AACpD,qCAAgC;AAChC,+BAA+B;AAK/B,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,eAAM;
|
|
1
|
+
{"version":3,"file":"DustEngine.js","sourceRoot":"","sources":["../../../src/components/DustEngine.ts"],"names":[],"mappings":";;;;AAAA,0CAAoC;AACpC,+BAA6B;AAC7B,yDAAoD;AACpD,qCAAgC;AAChC,+BAA+B;AAK/B,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,eAAM;IAC5B,KAAK,GAAG,GAAG,CAAC;IACZ,GAAG,GAAG,MAAM,CAAC;IAErB,SAAS,CAAC,OAAY;QACpB,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;aACxB;YACD,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;aAC5B;YACD,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;aACrC;SACF;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAEpE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,IAAY,EAAE,QAAa,EAAE,EAAE;YACzD,IAAI,IAAA,cAAO,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE;gBACxB,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;aACxB;YACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACnB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;aAChC;YACD,IAAI;gBACF,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAA,YAAI,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3C;YAAC,OAAO,EAAE,EAAE;gBACX,QAAQ,CAAC,EAAE,CAAC,CAAC;aACd;QACH,CAAC,CAAC;IACJ,CAAC;IAES,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,YAAY,CAAC;QAEjB,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;SAC3H;QAED,OAAO,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAQ,CAAC;IACzE,CAAC;CACF,CAAA;AA5CY,UAAU;IAHtB,IAAA,uBAAU,EAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;KAChD,CAAC;GACW,UAAU,CA4CtB;AA5CY,gCAAU","sourcesContent":["import {read} from \"../utils/cache\";\nimport {extname} from \"path\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\nimport {promisify} from \"util\";\n\n@ViewEngine(\"dust\", {\n requires: [\"dustjs-helpers\", \"dustjs-linkedin\"]\n})\nexport class DustEngine extends Engine {\n private views = \".\";\n private ext = \"dust\";\n\n configure(options: any) {\n if (options) {\n if (options.ext) {\n this.ext = options.ext;\n }\n if (options.views) {\n this.views = options.views;\n }\n if (options.settings && options.settings.views) {\n this.views = options.settings.views;\n }\n }\n if (!options || (options && !options.cache)) this.engine.cache = {};\n\n this.engine.onLoad = async (path: string, callback: any) => {\n if (extname(path) === \"\") {\n path += `.${this.ext}`;\n }\n if (path[0] !== \"/\") {\n path = `${this.views}/${path}`;\n }\n try {\n callback(null, await read(path, options));\n } catch (er) {\n callback(er);\n }\n };\n }\n\n protected $compile(template: string, options: any) {\n this.configure(options);\n\n let templateName;\n\n if (options.filename) {\n templateName = options.filename.replace(new RegExp(\"^\" + this.views + \"/\"), \"\").replace(new RegExp(\"\\\\.\" + this.ext), \"\");\n }\n\n return promisify(this.engine.compileFn(template, templateName)) as any;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/components/Engine.ts"],"names":[],"mappings":";;;AAAA,0CAAwF;AAYxF,MAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/components/Engine.ts"],"names":[],"mappings":"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","sourcesContent":["import {cache, getCachedEngine, importEngine, read, readPartials} from \"../utils/cache\";\n\nexport interface ViewEngineOptions {\n requires?: string | string[];\n}\n\nexport interface EngineOptions {\n cache?: boolean;\n\n [otherOptions: string]: any;\n}\n\nexport class Engine {\n protected driverName: string;\n\n constructor(readonly name: string, readonly options: ViewEngineOptions) {}\n\n get engine(): any {\n return getCachedEngine(this.name);\n }\n\n async $onInit() {\n await this.importEngine(this.name, this.options);\n }\n\n compile(template: string, options: EngineOptions) {\n options = this.$cacheOptions(template, options, false);\n\n return cache(options) || cache(options, this.$compile.call(this, template, options));\n }\n\n compileFile(file: string, options: EngineOptions) {\n options = this.$cacheOptions(file, options, true);\n\n return cache(options) || cache(options, this.$compileFile.call(this, file, options));\n }\n\n async render(template: string, options: EngineOptions) {\n const compile = await this.compile(template, options);\n\n return compile(options);\n }\n\n async renderFile(file: string, options: EngineOptions) {\n const opts = await this.readPartials(file, options);\n const compile = await this.compileFile(file, opts);\n\n return compile(opts);\n }\n\n protected async readPartials(file: string, options: EngineOptions) {\n options.filename = file;\n const partials = await readPartials(file, options);\n\n const opts = Object.assign({}, options);\n opts.partials = partials;\n\n return opts;\n }\n\n protected $cacheOptions(template: string, options: EngineOptions, fromFile?: boolean) {\n return options;\n }\n\n protected $compile(template: string, options: EngineOptions): (options: EngineOptions) => Promise<string> {\n return this.engine.compile(template, options);\n }\n\n protected async $compileFile(file: string, options: EngineOptions) {\n const template = await read(file, options);\n return this.$compile(template, options);\n }\n\n protected importEngine(name: string, options: ViewEngineOptions) {\n const reqs = ([] as string[]).concat(options.requires || [name]);\n\n const promises = reqs.map(async (req: string) => {\n try {\n await importEngine(req, name);\n this.driverName = req;\n } catch (er) {}\n });\n\n return Promise.all(promises);\n }\n}\n"]}
|
|
@@ -6,6 +6,7 @@ const viewEngine_1 = require("../decorators/viewEngine");
|
|
|
6
6
|
const Engine_1 = require("./Engine");
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
let TwingEngine = class TwingEngine extends Engine_1.Engine {
|
|
9
|
+
instance;
|
|
9
10
|
$compile(template, options) {
|
|
10
11
|
const engine = this.engine;
|
|
11
12
|
if (!this.instance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwingEngine.js","sourceRoot":"","sources":["../../../src/components/TwingEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAChC,2BAA8B;AAG9B,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,eAAM;
|
|
1
|
+
{"version":3,"file":"TwingEngine.js","sourceRoot":"","sources":["../../../src/components/TwingEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAChC,2BAA8B;AAG9B,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,eAAM;IAC7B,QAAQ,CAAM;IAEZ,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAE1C,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACpF,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACrD;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEpD,OAAO,KAAK,EAAE,OAAY,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;YAE3B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,WAAW;IADvB,IAAA,uBAAU,EAAC,OAAO,CAAC;GACP,WAAW,CAwBvB;AAxBY,kCAAW","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\nimport {existsSync} from \"fs\";\n\n@ViewEngine(\"twing\")\nexport class TwingEngine extends Engine {\n private instance: any;\n\n protected $compile(template: string, options: any): (options: any) => Promise<string> {\n const engine = this.engine;\n\n if (!this.instance) {\n let loader = new engine.TwingLoaderNull();\n\n if (options.settings && options.settings.views && existsSync(options.settings.views)) {\n loader = new engine.TwingLoaderFilesystem(options.settings.views);\n }\n\n this.instance = new engine.TwingEnvironment(loader);\n }\n\n const $cmp = this.instance.createTemplate(template);\n\n return async (options: any) => {\n const compile = await $cmp;\n\n return compile.render(options);\n };\n }\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _VueEngine_renderToString;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.VueEngine = void 0;
|
|
5
4
|
const tslib_1 = require("tslib");
|
|
@@ -22,17 +21,14 @@ function hashCode(str) {
|
|
|
22
21
|
return str.split("").reduce((prevHash, currVal) => (prevHash << 5) - prevHash + currVal.charCodeAt(0), 0);
|
|
23
22
|
}
|
|
24
23
|
let VueEngine = class VueEngine extends Engine_1.Engine {
|
|
25
|
-
|
|
26
|
-
super(...arguments);
|
|
27
|
-
_VueEngine_renderToString.set(this, void 0);
|
|
28
|
-
}
|
|
24
|
+
#renderToString;
|
|
29
25
|
async $onInit() {
|
|
30
26
|
await super.$onInit();
|
|
31
27
|
await (0, cache_1.importEngine)("vue-pronto/lib/index", "pronto");
|
|
32
28
|
await (0, cache_1.importEngine)("vueify");
|
|
33
29
|
await (0, cache_1.importEngine)("vue-server-renderer");
|
|
34
30
|
const ssrRenderer = this.vueServerRenderer.createRenderer();
|
|
35
|
-
|
|
31
|
+
this.#renderToString = (0, util_1.promisify)(ssrRenderer.renderToString.bind(this));
|
|
36
32
|
}
|
|
37
33
|
get pronto() {
|
|
38
34
|
return (0, cache_1.getCachedEngine)("pronto");
|
|
@@ -126,10 +122,9 @@ let VueEngine = class VueEngine extends Engine_1.Engine {
|
|
|
126
122
|
async renderComponent(Component, options) {
|
|
127
123
|
let Factory = this.engine.extend(Component);
|
|
128
124
|
let instance = new Factory({ propsData: options });
|
|
129
|
-
return
|
|
125
|
+
return this.#renderToString(instance);
|
|
130
126
|
}
|
|
131
127
|
};
|
|
132
|
-
_VueEngine_renderToString = new WeakMap();
|
|
133
128
|
VueEngine = tslib_1.__decorate([
|
|
134
129
|
(0, viewEngine_1.ViewEngine)("vue", {
|
|
135
130
|
requires: "vue"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VueEngine.js","sourceRoot":"","sources":["../../../src/components/VueEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VueEngine.js","sourceRoot":"","sources":["../../../src/components/VueEngine.ts"],"names":[],"mappings":"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","sourcesContent":["import {Engine, EngineOptions, ViewEngineOptions} from \"./Engine\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {getCachedEngine, importEngine} from \"../utils/cache\";\nimport {join, resolve} from \"path\";\nimport {promisify} from \"util\";\n\nfunction requireFromString(src: string, filename: string) {\n const Module: any = module.constructor;\n const m = new Module();\n m._compile(src, filename);\n return m.exports;\n}\n\n/**\n * simple hash a string\n * https://stackoverflow.com/a/34842797/493756\n */\n\nfunction hashCode(str: string) {\n return str.split(\"\").reduce((prevHash, currVal) => (prevHash << 5) - prevHash + currVal.charCodeAt(0), 0);\n}\n\n@ViewEngine(\"vue\", {\n requires: \"vue\"\n})\nexport class VueEngine extends Engine {\n #renderToString: any;\n\n async $onInit() {\n await super.$onInit();\n await importEngine(\"vue-pronto/lib/index\", \"pronto\");\n await importEngine(\"vueify\");\n await importEngine(\"vue-server-renderer\");\n const ssrRenderer = this.vueServerRenderer.createRenderer();\n\n this.#renderToString = promisify(ssrRenderer.renderToString.bind(this));\n }\n\n get pronto() {\n return getCachedEngine(\"pronto\");\n }\n\n get vueify() {\n return getCachedEngine(\"vueify\");\n }\n\n get vueServerRenderer() {\n return getCachedEngine(\"vue-server-renderer\");\n }\n\n protected $cacheOptions(template: string, options: EngineOptions, fromFile?: boolean): EngineOptions {\n const fullPath = join(__dirname, `/${hashCode(template)}`);\n\n if (!fromFile) {\n return {\n ...options,\n filename: fullPath\n };\n }\n\n return options;\n }\n\n protected $compile(template: string, options: EngineOptions) {\n // make up a fake path\n const fullPath = join(__dirname, `/${hashCode(template)}`);\n const promise = this.getComponent(fullPath, template, options);\n\n return async (options: EngineOptions) => {\n return this.renderComponent(await promise, options);\n };\n }\n\n protected async $compileFile(file: string, options: EngineOptions) {\n // prontoRenderer assume that the filepath is relative to a passed \"rootpath\"\n // and if you don't pass a rootpath it will try to find one\n // based on its current __dirname\n // https://github.com/express-vue/vue-pronto/blob/c88e380fee8656bc3ed21c7d3adb2ef331be07d5/lib/utils/findPaths.js#L10-L18\n const fullPath = resolve(file);\n const rootPath = process.cwd();\n const filepath = fullPath.replace(`${rootPath}/`, \"\");\n const prontoOptions: any = {\n rootPath,\n vueVersion: {disabled: true}\n };\n\n if (!options.cache) {\n // disable pronto lru cache\n prontoOptions.cacheOptions = {max: 0};\n }\n\n let prontoRenderer = new this.pronto.ProntoVueify(prontoOptions);\n\n if (!options.cache) {\n // disable pronto internal cache\n // yup\n prontoRenderer.internalCache = {\n get: () => {},\n set: () => {}\n };\n } else {\n // so, this ties each \"renderer\" to a rootPath\n // so I have to create a new prontoRenderer each time\n // which sucks! because I loose the internal cache of it,\n // unless, I keep tabs on both lru and internal caches and replace them every time.\n const internalCache = prontoRenderer.internalCache;\n\n prontoRenderer.internalCache = {\n get: internalCache.get.bind(internalCache),\n set(filename: string, component: any) {\n internalCache.set(filename, {\n ...component,\n data: component.data || (() => options)\n });\n }\n };\n }\n\n return (options: EngineOptions) => {\n return prontoRenderer.RenderToString(\n filepath,\n {},\n {\n propsData: options\n }\n );\n };\n }\n\n private async getComponent(fullPath: string, template: string, options: EngineOptions) {\n // assume that the str the content of a <template> ... </template>\n if (/<template/.test(template.trim())) {\n // assume that the str is a fileContent of a .vue file\n const compile = promisify(this.vueify.compiler.compile.bind(this.vueify.compiler));\n const cmp = await compile(template, fullPath);\n return requireFromString(cmp, fullPath);\n }\n\n return {\n template,\n data() {\n return options;\n }\n };\n }\n\n private async renderComponent(Component: any, options: EngineOptions) {\n let Factory = this.engine.extend(Component);\n let instance = new Factory({propsData: options});\n\n return this.#renderToString(instance);\n }\n}\n"]}
|
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _EnginesContainer_providers;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.engines = exports.EnginesContainer = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
4
|
class EnginesContainer {
|
|
7
|
-
|
|
8
|
-
_EnginesContainer_providers.set(this, new Map());
|
|
9
|
-
}
|
|
5
|
+
#providers = new Map();
|
|
10
6
|
has(key) {
|
|
11
|
-
return
|
|
7
|
+
return this.#providers.has(key);
|
|
12
8
|
}
|
|
13
9
|
get(key) {
|
|
14
|
-
const provider =
|
|
10
|
+
const provider = this.#providers.get(key);
|
|
15
11
|
if (provider && !provider.instance) {
|
|
16
12
|
provider.instance = new provider.useClass(provider.name, provider.options);
|
|
17
13
|
}
|
|
18
|
-
return provider
|
|
14
|
+
return provider?.instance;
|
|
19
15
|
}
|
|
20
16
|
set(key, provider) {
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
this.#providers.set(key, provider);
|
|
18
|
+
this.#providers.set(provider.name, provider);
|
|
23
19
|
}
|
|
24
20
|
getSupportedEngines() {
|
|
25
|
-
return [...
|
|
21
|
+
return [...this.#providers.keys()].filter((key) => typeof key === "string");
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
24
|
exports.EnginesContainer = EnginesContainer;
|
|
29
|
-
_EnginesContainer_providers = new WeakMap();
|
|
30
25
|
exports.engines = new EnginesContainer();
|
|
31
26
|
//# sourceMappingURL=EnginesContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnginesContainer.js","sourceRoot":"","sources":["../../../src/registries/EnginesContainer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EnginesContainer.js","sourceRoot":"","sources":["../../../src/registries/EnginesContainer.ts"],"names":[],"mappings":";;;AASA,MAAa,gBAAgB;IAC3B,UAAU,GAAgD,IAAI,GAAG,EAAE,CAAC;IAEpE,GAAG,CAAC,GAA2B;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,GAA2B;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC5E;QAED,OAAO,QAAQ,EAAE,QAAQ,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAkB,EAAE,QAAwB;QAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAa,CAAC;IAC1F,CAAC;CACF;AAzBD,4CAyBC;AAEY,QAAA,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC","sourcesContent":["import {Engine, ViewEngineOptions} from \"../components/Engine\";\n\nexport interface EngineProvider {\n name: string;\n useClass: typeof Engine;\n instance?: Engine;\n options: ViewEngineOptions;\n}\n\nexport class EnginesContainer {\n #providers: Map<string | typeof Engine, EngineProvider> = new Map();\n\n has(key: string | typeof Engine) {\n return this.#providers.has(key)\n }\n\n get(key: string | typeof Engine) {\n const provider = this.#providers.get(key);\n\n if (provider && !provider.instance) {\n provider.instance = new provider.useClass(provider.name, provider.options);\n }\n\n return provider?.instance;\n }\n\n set(key: typeof Engine, provider: EngineProvider) {\n this.#providers.set(key, provider);\n this.#providers.set(provider.name, provider);\n }\n\n getSupportedEngines(): string[] {\n return [...this.#providers.keys()].filter((key) => typeof key === \"string\") as string[];\n }\n}\n\nexport const engines = new EnginesContainer();\n"]}
|
|
@@ -5,11 +5,8 @@ import { ViewEngine } from "../decorators/viewEngine.js";
|
|
|
5
5
|
import { Engine } from "./Engine.js";
|
|
6
6
|
import { promisify } from "util";
|
|
7
7
|
let DustEngine = class DustEngine extends Engine {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this.views = ".";
|
|
11
|
-
this.ext = "dust";
|
|
12
|
-
}
|
|
8
|
+
views = ".";
|
|
9
|
+
ext = "dust";
|
|
13
10
|
configure(options) {
|
|
14
11
|
if (options) {
|
|
15
12
|
if (options.ext) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DustEngine.js","sourceRoot":"","sources":["../../../src/components/DustEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAK/B,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"DustEngine.js","sourceRoot":"","sources":["../../../src/components/DustEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAK/B,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,MAAM;IAC5B,KAAK,GAAG,GAAG,CAAC;IACZ,GAAG,GAAG,MAAM,CAAC;IAErB,SAAS,CAAC,OAAY;QACpB,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;aACxB;YACD,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;aAC5B;YACD,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;aACrC;SACF;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAEpE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,IAAY,EAAE,QAAa,EAAE,EAAE;YACzD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;gBACxB,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;aACxB;YACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACnB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;aAChC;YACD,IAAI;gBACF,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3C;YAAC,OAAO,EAAE,EAAE;gBACX,QAAQ,CAAC,EAAE,CAAC,CAAC;aACd;QACH,CAAC,CAAC;IACJ,CAAC;IAES,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,YAAY,CAAC;QAEjB,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;SAC3H;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAQ,CAAC;IACzE,CAAC;CACF,CAAA;AA5CY,UAAU;IAHtB,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;KAChD,CAAC;GACW,UAAU,CA4CtB;SA5CY,UAAU","sourcesContent":["import {read} from \"../utils/cache\";\nimport {extname} from \"path\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\nimport {promisify} from \"util\";\n\n@ViewEngine(\"dust\", {\n requires: [\"dustjs-helpers\", \"dustjs-linkedin\"]\n})\nexport class DustEngine extends Engine {\n private views = \".\";\n private ext = \"dust\";\n\n configure(options: any) {\n if (options) {\n if (options.ext) {\n this.ext = options.ext;\n }\n if (options.views) {\n this.views = options.views;\n }\n if (options.settings && options.settings.views) {\n this.views = options.settings.views;\n }\n }\n if (!options || (options && !options.cache)) this.engine.cache = {};\n\n this.engine.onLoad = async (path: string, callback: any) => {\n if (extname(path) === \"\") {\n path += `.${this.ext}`;\n }\n if (path[0] !== \"/\") {\n path = `${this.views}/${path}`;\n }\n try {\n callback(null, await read(path, options));\n } catch (er) {\n callback(er);\n }\n };\n }\n\n protected $compile(template: string, options: any) {\n this.configure(options);\n\n let templateName;\n\n if (options.filename) {\n templateName = options.filename.replace(new RegExp(\"^\" + this.views + \"/\"), \"\").replace(new RegExp(\"\\\\.\" + this.ext), \"\");\n }\n\n return promisify(this.engine.compileFn(template, templateName)) as any;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/components/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAYxF,MAAM,OAAO,MAAM;
|
|
1
|
+
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../../src/components/Engine.ts"],"names":[],"mappings":"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","sourcesContent":["import {cache, getCachedEngine, importEngine, read, readPartials} from \"../utils/cache\";\n\nexport interface ViewEngineOptions {\n requires?: string | string[];\n}\n\nexport interface EngineOptions {\n cache?: boolean;\n\n [otherOptions: string]: any;\n}\n\nexport class Engine {\n protected driverName: string;\n\n constructor(readonly name: string, readonly options: ViewEngineOptions) {}\n\n get engine(): any {\n return getCachedEngine(this.name);\n }\n\n async $onInit() {\n await this.importEngine(this.name, this.options);\n }\n\n compile(template: string, options: EngineOptions) {\n options = this.$cacheOptions(template, options, false);\n\n return cache(options) || cache(options, this.$compile.call(this, template, options));\n }\n\n compileFile(file: string, options: EngineOptions) {\n options = this.$cacheOptions(file, options, true);\n\n return cache(options) || cache(options, this.$compileFile.call(this, file, options));\n }\n\n async render(template: string, options: EngineOptions) {\n const compile = await this.compile(template, options);\n\n return compile(options);\n }\n\n async renderFile(file: string, options: EngineOptions) {\n const opts = await this.readPartials(file, options);\n const compile = await this.compileFile(file, opts);\n\n return compile(opts);\n }\n\n protected async readPartials(file: string, options: EngineOptions) {\n options.filename = file;\n const partials = await readPartials(file, options);\n\n const opts = Object.assign({}, options);\n opts.partials = partials;\n\n return opts;\n }\n\n protected $cacheOptions(template: string, options: EngineOptions, fromFile?: boolean) {\n return options;\n }\n\n protected $compile(template: string, options: EngineOptions): (options: EngineOptions) => Promise<string> {\n return this.engine.compile(template, options);\n }\n\n protected async $compileFile(file: string, options: EngineOptions) {\n const template = await read(file, options);\n return this.$compile(template, options);\n }\n\n protected importEngine(name: string, options: ViewEngineOptions) {\n const reqs = ([] as string[]).concat(options.requires || [name]);\n\n const promises = reqs.map(async (req: string) => {\n try {\n await importEngine(req, name);\n this.driverName = req;\n } catch (er) {}\n });\n\n return Promise.all(promises);\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import { ViewEngine } from "../decorators/viewEngine.js";
|
|
|
3
3
|
import { Engine } from "./Engine.js";
|
|
4
4
|
import { existsSync } from "fs";
|
|
5
5
|
let TwingEngine = class TwingEngine extends Engine {
|
|
6
|
+
instance;
|
|
6
7
|
$compile(template, options) {
|
|
7
8
|
const engine = this.engine;
|
|
8
9
|
if (!this.instance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwingEngine.js","sourceRoot":"","sources":["../../../src/components/TwingEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,IAAI,CAAC;AAG9B,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"TwingEngine.js","sourceRoot":"","sources":["../../../src/components/TwingEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,IAAI,CAAC;AAG9B,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,MAAM;IAC7B,QAAQ,CAAM;IAEZ,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAE1C,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACpF,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACrD;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEpD,OAAO,KAAK,EAAE,OAAY,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;YAE3B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,WAAW;IADvB,UAAU,CAAC,OAAO,CAAC;GACP,WAAW,CAwBvB;SAxBY,WAAW","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\nimport {existsSync} from \"fs\";\n\n@ViewEngine(\"twing\")\nexport class TwingEngine extends Engine {\n private instance: any;\n\n protected $compile(template: string, options: any): (options: any) => Promise<string> {\n const engine = this.engine;\n\n if (!this.instance) {\n let loader = new engine.TwingLoaderNull();\n\n if (options.settings && options.settings.views && existsSync(options.settings.views)) {\n loader = new engine.TwingLoaderFilesystem(options.settings.views);\n }\n\n this.instance = new engine.TwingEnvironment(loader);\n }\n\n const $cmp = this.instance.createTemplate(template);\n\n return async (options: any) => {\n const compile = await $cmp;\n\n return compile.render(options);\n };\n }\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
|
|
1
|
+
import { __decorate } from "tslib";
|
|
3
2
|
import { Engine } from "./Engine.js";
|
|
4
3
|
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
5
4
|
import { getCachedEngine, importEngine } from "../utils/cache.js";
|
|
@@ -19,17 +18,14 @@ function hashCode(str) {
|
|
|
19
18
|
return str.split("").reduce((prevHash, currVal) => (prevHash << 5) - prevHash + currVal.charCodeAt(0), 0);
|
|
20
19
|
}
|
|
21
20
|
let VueEngine = class VueEngine extends Engine {
|
|
22
|
-
|
|
23
|
-
super(...arguments);
|
|
24
|
-
_VueEngine_renderToString.set(this, void 0);
|
|
25
|
-
}
|
|
21
|
+
#renderToString;
|
|
26
22
|
async $onInit() {
|
|
27
23
|
await super.$onInit();
|
|
28
24
|
await importEngine("vue-pronto/lib/index", "pronto");
|
|
29
25
|
await importEngine("vueify");
|
|
30
26
|
await importEngine("vue-server-renderer");
|
|
31
27
|
const ssrRenderer = this.vueServerRenderer.createRenderer();
|
|
32
|
-
|
|
28
|
+
this.#renderToString = promisify(ssrRenderer.renderToString.bind(this));
|
|
33
29
|
}
|
|
34
30
|
get pronto() {
|
|
35
31
|
return getCachedEngine("pronto");
|
|
@@ -123,10 +119,9 @@ let VueEngine = class VueEngine extends Engine {
|
|
|
123
119
|
async renderComponent(Component, options) {
|
|
124
120
|
let Factory = this.engine.extend(Component);
|
|
125
121
|
let instance = new Factory({ propsData: options });
|
|
126
|
-
return
|
|
122
|
+
return this.#renderToString(instance);
|
|
127
123
|
}
|
|
128
124
|
};
|
|
129
|
-
_VueEngine_renderToString = new WeakMap();
|
|
130
125
|
VueEngine = __decorate([
|
|
131
126
|
ViewEngine("vue", {
|
|
132
127
|
requires: "vue"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VueEngine.js","sourceRoot":"","sources":["../../../src/components/VueEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VueEngine.js","sourceRoot":"","sources":["../../../src/components/VueEngine.ts"],"names":[],"mappings":"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","sourcesContent":["import {Engine, EngineOptions, ViewEngineOptions} from \"./Engine\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {getCachedEngine, importEngine} from \"../utils/cache\";\nimport {join, resolve} from \"path\";\nimport {promisify} from \"util\";\n\nfunction requireFromString(src: string, filename: string) {\n const Module: any = module.constructor;\n const m = new Module();\n m._compile(src, filename);\n return m.exports;\n}\n\n/**\n * simple hash a string\n * https://stackoverflow.com/a/34842797/493756\n */\n\nfunction hashCode(str: string) {\n return str.split(\"\").reduce((prevHash, currVal) => (prevHash << 5) - prevHash + currVal.charCodeAt(0), 0);\n}\n\n@ViewEngine(\"vue\", {\n requires: \"vue\"\n})\nexport class VueEngine extends Engine {\n #renderToString: any;\n\n async $onInit() {\n await super.$onInit();\n await importEngine(\"vue-pronto/lib/index\", \"pronto\");\n await importEngine(\"vueify\");\n await importEngine(\"vue-server-renderer\");\n const ssrRenderer = this.vueServerRenderer.createRenderer();\n\n this.#renderToString = promisify(ssrRenderer.renderToString.bind(this));\n }\n\n get pronto() {\n return getCachedEngine(\"pronto\");\n }\n\n get vueify() {\n return getCachedEngine(\"vueify\");\n }\n\n get vueServerRenderer() {\n return getCachedEngine(\"vue-server-renderer\");\n }\n\n protected $cacheOptions(template: string, options: EngineOptions, fromFile?: boolean): EngineOptions {\n const fullPath = join(__dirname, `/${hashCode(template)}`);\n\n if (!fromFile) {\n return {\n ...options,\n filename: fullPath\n };\n }\n\n return options;\n }\n\n protected $compile(template: string, options: EngineOptions) {\n // make up a fake path\n const fullPath = join(__dirname, `/${hashCode(template)}`);\n const promise = this.getComponent(fullPath, template, options);\n\n return async (options: EngineOptions) => {\n return this.renderComponent(await promise, options);\n };\n }\n\n protected async $compileFile(file: string, options: EngineOptions) {\n // prontoRenderer assume that the filepath is relative to a passed \"rootpath\"\n // and if you don't pass a rootpath it will try to find one\n // based on its current __dirname\n // https://github.com/express-vue/vue-pronto/blob/c88e380fee8656bc3ed21c7d3adb2ef331be07d5/lib/utils/findPaths.js#L10-L18\n const fullPath = resolve(file);\n const rootPath = process.cwd();\n const filepath = fullPath.replace(`${rootPath}/`, \"\");\n const prontoOptions: any = {\n rootPath,\n vueVersion: {disabled: true}\n };\n\n if (!options.cache) {\n // disable pronto lru cache\n prontoOptions.cacheOptions = {max: 0};\n }\n\n let prontoRenderer = new this.pronto.ProntoVueify(prontoOptions);\n\n if (!options.cache) {\n // disable pronto internal cache\n // yup\n prontoRenderer.internalCache = {\n get: () => {},\n set: () => {}\n };\n } else {\n // so, this ties each \"renderer\" to a rootPath\n // so I have to create a new prontoRenderer each time\n // which sucks! because I loose the internal cache of it,\n // unless, I keep tabs on both lru and internal caches and replace them every time.\n const internalCache = prontoRenderer.internalCache;\n\n prontoRenderer.internalCache = {\n get: internalCache.get.bind(internalCache),\n set(filename: string, component: any) {\n internalCache.set(filename, {\n ...component,\n data: component.data || (() => options)\n });\n }\n };\n }\n\n return (options: EngineOptions) => {\n return prontoRenderer.RenderToString(\n filepath,\n {},\n {\n propsData: options\n }\n );\n };\n }\n\n private async getComponent(fullPath: string, template: string, options: EngineOptions) {\n // assume that the str the content of a <template> ... </template>\n if (/<template/.test(template.trim())) {\n // assume that the str is a fileContent of a .vue file\n const compile = promisify(this.vueify.compiler.compile.bind(this.vueify.compiler));\n const cmp = await compile(template, fullPath);\n return requireFromString(cmp, fullPath);\n }\n\n return {\n template,\n data() {\n return options;\n }\n };\n }\n\n private async renderComponent(Component: any, options: EngineOptions) {\n let Factory = this.engine.extend(Component);\n let instance = new Factory({propsData: options});\n\n return this.#renderToString(instance);\n }\n}\n"]}
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
var _EnginesContainer_providers;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
1
|
export class EnginesContainer {
|
|
4
|
-
|
|
5
|
-
_EnginesContainer_providers.set(this, new Map());
|
|
6
|
-
}
|
|
2
|
+
#providers = new Map();
|
|
7
3
|
has(key) {
|
|
8
|
-
return
|
|
4
|
+
return this.#providers.has(key);
|
|
9
5
|
}
|
|
10
6
|
get(key) {
|
|
11
|
-
const provider =
|
|
7
|
+
const provider = this.#providers.get(key);
|
|
12
8
|
if (provider && !provider.instance) {
|
|
13
9
|
provider.instance = new provider.useClass(provider.name, provider.options);
|
|
14
10
|
}
|
|
15
|
-
return provider
|
|
11
|
+
return provider?.instance;
|
|
16
12
|
}
|
|
17
13
|
set(key, provider) {
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
this.#providers.set(key, provider);
|
|
15
|
+
this.#providers.set(provider.name, provider);
|
|
20
16
|
}
|
|
21
17
|
getSupportedEngines() {
|
|
22
|
-
return [...
|
|
18
|
+
return [...this.#providers.keys()].filter((key) => typeof key === "string");
|
|
23
19
|
}
|
|
24
20
|
}
|
|
25
|
-
_EnginesContainer_providers = new WeakMap();
|
|
26
21
|
export const engines = new EnginesContainer();
|
|
27
22
|
//# sourceMappingURL=EnginesContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnginesContainer.js","sourceRoot":"","sources":["../../../src/registries/EnginesContainer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EnginesContainer.js","sourceRoot":"","sources":["../../../src/registries/EnginesContainer.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,gBAAgB;IAC3B,UAAU,GAAgD,IAAI,GAAG,EAAE,CAAC;IAEpE,GAAG,CAAC,GAA2B;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,GAA2B;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAClC,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC5E;QAED,OAAO,QAAQ,EAAE,QAAQ,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAkB,EAAE,QAAwB;QAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAa,CAAC;IAC1F,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC","sourcesContent":["import {Engine, ViewEngineOptions} from \"../components/Engine\";\n\nexport interface EngineProvider {\n name: string;\n useClass: typeof Engine;\n instance?: Engine;\n options: ViewEngineOptions;\n}\n\nexport class EnginesContainer {\n #providers: Map<string | typeof Engine, EngineProvider> = new Map();\n\n has(key: string | typeof Engine) {\n return this.#providers.has(key)\n }\n\n get(key: string | typeof Engine) {\n const provider = this.#providers.get(key);\n\n if (provider && !provider.instance) {\n provider.instance = new provider.useClass(provider.name, provider.options);\n }\n\n return provider?.instance;\n }\n\n set(key: typeof Engine, provider: EngineProvider) {\n this.#providers.set(key, provider);\n this.#providers.set(provider.name, provider);\n }\n\n getSupportedEngines(): string[] {\n return [...this.#providers.keys()].filter((key) => typeof key === \"string\") as string[];\n }\n}\n\nexport const engines = new EnginesContainer();\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/engines",
|
|
3
|
-
"version": "6.114.
|
|
3
|
+
"version": "6.114.18",
|
|
4
4
|
"description": "Template engines library. Provide an API to adding custom engines from decorators.",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"private": false,
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"fs-extra": "10.0.1",
|
|
25
|
-
"tslib": "
|
|
25
|
+
"tslib": "2.4.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/fs-extra": "^9.0.13",
|