@tsed/engines 1.1.5 → 7.0.0-beta.6
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/.mocharc.js +5 -0
- package/.nycrc +26 -0
- package/lib/cjs/components/AtplEngine.js +13 -0
- package/lib/cjs/components/AtplEngine.js.map +1 -0
- package/lib/cjs/components/BracketEngine.js +18 -0
- package/lib/cjs/components/BracketEngine.js.map +1 -0
- package/lib/cjs/components/DotEngine.js +20 -0
- package/lib/cjs/components/DotEngine.js.map +1 -0
- package/lib/cjs/components/DustEngine.js +60 -0
- package/lib/cjs/components/DustEngine.js.map +1 -0
- package/lib/cjs/components/EctEngine.js +27 -0
- package/lib/cjs/components/EctEngine.js.map +1 -0
- package/lib/cjs/components/EjsEngine.js +13 -0
- package/lib/cjs/components/EjsEngine.js.map +1 -0
- package/lib/cjs/components/Engine.js +63 -0
- package/lib/cjs/components/Engine.js.map +1 -0
- package/lib/cjs/components/HamlCoffeeEngine.js +13 -0
- package/lib/cjs/components/HamlCoffeeEngine.js.map +1 -0
- package/lib/cjs/components/HamlEngine.js +19 -0
- package/lib/cjs/components/HamlEngine.js.map +1 -0
- package/lib/cjs/components/HamletEngine.js +19 -0
- package/lib/cjs/components/HamletEngine.js.map +1 -0
- package/lib/cjs/components/HandlebarsEngine.js +25 -0
- package/lib/cjs/components/HandlebarsEngine.js.map +1 -0
- package/lib/cjs/components/HoganEngine.js +21 -0
- package/lib/cjs/components/HoganEngine.js.map +1 -0
- package/lib/cjs/components/HtmlingEngine.js +17 -0
- package/lib/cjs/components/HtmlingEngine.js.map +1 -0
- package/lib/cjs/components/JazzEngine.js +17 -0
- package/lib/cjs/components/JazzEngine.js.map +1 -0
- package/lib/cjs/components/JqtplEngine.js +17 -0
- package/lib/cjs/components/JqtplEngine.js.map +1 -0
- package/lib/cjs/components/JustEngine.js +27 -0
- package/lib/cjs/components/JustEngine.js.map +1 -0
- package/lib/cjs/components/LiquorEngine.js +13 -0
- package/lib/cjs/components/LiquorEngine.js.map +1 -0
- package/lib/cjs/components/LodashEngine.js +20 -0
- package/lib/cjs/components/LodashEngine.js.map +1 -0
- package/lib/cjs/components/MarkoEngine.js +29 -0
- package/lib/cjs/components/MarkoEngine.js.map +1 -0
- package/lib/cjs/components/MoteEngine.js +13 -0
- package/lib/cjs/components/MoteEngine.js.map +1 -0
- package/lib/cjs/components/MustacheEngine.js +16 -0
- package/lib/cjs/components/MustacheEngine.js.map +1 -0
- package/lib/cjs/components/NunjucksEngine.js +56 -0
- package/lib/cjs/components/NunjucksEngine.js.map +1 -0
- package/lib/cjs/components/PlatesEngine.js +19 -0
- package/lib/cjs/components/PlatesEngine.js.map +1 -0
- package/lib/cjs/components/PugEngine.js +21 -0
- package/lib/cjs/components/PugEngine.js.map +1 -0
- package/lib/cjs/components/RactiveEngine.js +36 -0
- package/lib/cjs/components/RactiveEngine.js.map +1 -0
- package/lib/cjs/components/ReactEngine.js +136 -0
- package/lib/cjs/components/ReactEngine.js.map +1 -0
- package/lib/cjs/components/SlmEngine.js +13 -0
- package/lib/cjs/components/SlmEngine.js.map +1 -0
- package/lib/cjs/components/SquirrellyEngine.js +23 -0
- package/lib/cjs/components/SquirrellyEngine.js.map +1 -0
- package/lib/cjs/components/SwigEngine.js +21 -0
- package/lib/cjs/components/SwigEngine.js.map +1 -0
- package/lib/cjs/components/TemplayedEngine.js +16 -0
- package/lib/cjs/components/TemplayedEngine.js.map +1 -0
- package/lib/cjs/components/ToffeeEngine.js +22 -0
- package/lib/cjs/components/ToffeeEngine.js.map +1 -0
- package/lib/cjs/components/TwigEngine.js +28 -0
- package/lib/cjs/components/TwigEngine.js.map +1 -0
- package/lib/cjs/components/TwingEngine.js +29 -0
- package/lib/cjs/components/TwingEngine.js.map +1 -0
- package/lib/cjs/components/UnderscoreEngine.js +28 -0
- package/lib/cjs/components/UnderscoreEngine.js.map +1 -0
- package/lib/cjs/components/VashEngine.js +35 -0
- package/lib/cjs/components/VashEngine.js.map +1 -0
- package/lib/cjs/components/VelocityEngine.js +18 -0
- package/lib/cjs/components/VelocityEngine.js.map +1 -0
- package/lib/cjs/components/VueEngine.js +139 -0
- package/lib/cjs/components/VueEngine.js.map +1 -0
- package/lib/cjs/components/WalrusEngine.js +17 -0
- package/lib/cjs/components/WalrusEngine.js.map +1 -0
- package/lib/cjs/decorators/viewEngine.js +11 -0
- package/lib/cjs/decorators/viewEngine.js.map +1 -0
- package/lib/cjs/index.js +49 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/registries/EnginesContainer.js +31 -0
- package/lib/cjs/registries/EnginesContainer.js.map +1 -0
- package/lib/cjs/utils/cache.js +140 -0
- package/lib/cjs/utils/cache.js.map +1 -0
- package/lib/cjs/utils/getEngines.js +47 -0
- package/lib/cjs/utils/getEngines.js.map +1 -0
- package/lib/esm/components/AtplEngine.js +10 -0
- package/lib/esm/components/AtplEngine.js.map +1 -0
- package/lib/esm/components/BracketEngine.js +15 -0
- package/lib/esm/components/BracketEngine.js.map +1 -0
- package/lib/esm/components/DotEngine.js +17 -0
- package/lib/esm/components/DotEngine.js.map +1 -0
- package/lib/esm/components/DustEngine.js +57 -0
- package/lib/esm/components/DustEngine.js.map +1 -0
- package/lib/esm/components/EctEngine.js +24 -0
- package/lib/esm/components/EctEngine.js.map +1 -0
- package/lib/esm/components/EjsEngine.js +10 -0
- package/lib/esm/components/EjsEngine.js.map +1 -0
- package/lib/esm/components/Engine.js +59 -0
- package/lib/esm/components/Engine.js.map +1 -0
- package/lib/esm/components/HamlCoffeeEngine.js +10 -0
- package/lib/esm/components/HamlCoffeeEngine.js.map +1 -0
- package/lib/esm/components/HamlEngine.js +16 -0
- package/lib/esm/components/HamlEngine.js.map +1 -0
- package/lib/esm/components/HamletEngine.js +16 -0
- package/lib/esm/components/HamletEngine.js.map +1 -0
- package/lib/esm/components/HandlebarsEngine.js +22 -0
- package/lib/esm/components/HandlebarsEngine.js.map +1 -0
- package/lib/esm/components/HoganEngine.js +18 -0
- package/lib/esm/components/HoganEngine.js.map +1 -0
- package/lib/esm/components/HtmlingEngine.js +14 -0
- package/lib/esm/components/HtmlingEngine.js.map +1 -0
- package/lib/esm/components/JazzEngine.js +14 -0
- package/lib/esm/components/JazzEngine.js.map +1 -0
- package/lib/esm/components/JqtplEngine.js +14 -0
- package/lib/esm/components/JqtplEngine.js.map +1 -0
- package/lib/esm/components/JustEngine.js +24 -0
- package/lib/esm/components/JustEngine.js.map +1 -0
- package/lib/esm/components/LiquorEngine.js +10 -0
- package/lib/esm/components/LiquorEngine.js.map +1 -0
- package/lib/esm/components/LodashEngine.js +17 -0
- package/lib/esm/components/LodashEngine.js.map +1 -0
- package/lib/esm/components/MarkoEngine.js +26 -0
- package/lib/esm/components/MarkoEngine.js.map +1 -0
- package/lib/esm/components/MoteEngine.js +10 -0
- package/lib/esm/components/MoteEngine.js.map +1 -0
- package/lib/esm/components/MustacheEngine.js +13 -0
- package/lib/esm/components/MustacheEngine.js.map +1 -0
- package/lib/esm/components/NunjucksEngine.js +53 -0
- package/lib/esm/components/NunjucksEngine.js.map +1 -0
- package/lib/esm/components/PlatesEngine.js +16 -0
- package/lib/esm/components/PlatesEngine.js.map +1 -0
- package/lib/esm/components/PugEngine.js +18 -0
- package/lib/esm/components/PugEngine.js.map +1 -0
- package/lib/esm/components/RactiveEngine.js +33 -0
- package/lib/esm/components/RactiveEngine.js.map +1 -0
- package/lib/esm/components/ReactEngine.js +133 -0
- package/lib/esm/components/ReactEngine.js.map +1 -0
- package/lib/esm/components/SlmEngine.js +10 -0
- package/lib/esm/components/SlmEngine.js.map +1 -0
- package/lib/esm/components/SquirrellyEngine.js +20 -0
- package/lib/esm/components/SquirrellyEngine.js.map +1 -0
- package/lib/esm/components/SwigEngine.js +18 -0
- package/lib/esm/components/SwigEngine.js.map +1 -0
- package/lib/esm/components/TemplayedEngine.js +13 -0
- package/lib/esm/components/TemplayedEngine.js.map +1 -0
- package/lib/esm/components/ToffeeEngine.js +19 -0
- package/lib/esm/components/ToffeeEngine.js.map +1 -0
- package/lib/esm/components/TwigEngine.js +25 -0
- package/lib/esm/components/TwigEngine.js.map +1 -0
- package/lib/esm/components/TwingEngine.js +26 -0
- package/lib/esm/components/TwingEngine.js.map +1 -0
- package/lib/esm/components/UnderscoreEngine.js +25 -0
- package/lib/esm/components/UnderscoreEngine.js.map +1 -0
- package/lib/esm/components/VashEngine.js +32 -0
- package/lib/esm/components/VashEngine.js.map +1 -0
- package/lib/esm/components/VelocityEngine.js +15 -0
- package/lib/esm/components/VelocityEngine.js.map +1 -0
- package/lib/esm/components/VueEngine.js +136 -0
- package/lib/esm/components/VueEngine.js.map +1 -0
- package/lib/esm/components/WalrusEngine.js +14 -0
- package/lib/esm/components/WalrusEngine.js.map +1 -0
- package/lib/esm/decorators/viewEngine.js +7 -0
- package/lib/esm/decorators/viewEngine.js.map +1 -0
- package/lib/esm/index.js +46 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/registries/EnginesContainer.js +27 -0
- package/lib/esm/registries/EnginesContainer.js.map +1 -0
- package/lib/esm/utils/cache.js +127 -0
- package/lib/esm/utils/cache.js.map +1 -0
- package/lib/esm/utils/getEngines.js +42 -0
- package/lib/esm/utils/getEngines.js.map +1 -0
- package/lib/{components → types/components}/AtplEngine.d.ts +0 -0
- package/lib/{components → types/components}/BracketEngine.d.ts +0 -0
- package/lib/{components → types/components}/DotEngine.d.ts +0 -0
- package/lib/{components → types/components}/DustEngine.d.ts +0 -0
- package/lib/{components → types/components}/EctEngine.d.ts +0 -0
- package/lib/{components → types/components}/EjsEngine.d.ts +0 -0
- package/lib/{components → types/components}/Engine.d.ts +4 -1
- package/lib/{components → types/components}/HamlCoffeeEngine.d.ts +0 -0
- package/lib/{components → types/components}/HamlEngine.d.ts +0 -0
- package/lib/{components → types/components}/HamletEngine.d.ts +0 -0
- package/lib/{components → types/components}/HandlebarsEngine.d.ts +0 -0
- package/lib/{components → types/components}/HoganEngine.d.ts +0 -0
- package/lib/{components → types/components}/HtmlingEngine.d.ts +0 -0
- package/lib/{components → types/components}/JazzEngine.d.ts +0 -0
- package/lib/{components → types/components}/JqtplEngine.d.ts +0 -0
- package/lib/{components → types/components}/JustEngine.d.ts +0 -0
- package/lib/{components → types/components}/LiquorEngine.d.ts +0 -0
- package/lib/{components → types/components}/LodashEngine.d.ts +0 -0
- package/lib/{components → types/components}/MarkoEngine.d.ts +0 -0
- package/lib/{components → types/components}/MoteEngine.d.ts +0 -0
- package/lib/{components → types/components}/MustacheEngine.d.ts +0 -0
- package/lib/{components → types/components}/NunjucksEngine.d.ts +0 -0
- package/lib/{components → types/components}/PlatesEngine.d.ts +0 -0
- package/lib/{components → types/components}/PugEngine.d.ts +0 -0
- package/lib/{components → types/components}/RactiveEngine.d.ts +0 -0
- package/lib/{components → types/components}/ReactEngine.d.ts +3 -0
- package/lib/{components → types/components}/SlmEngine.d.ts +0 -0
- package/lib/{components → types/components}/SquirrellyEngine.d.ts +0 -0
- package/lib/{components → types/components}/SwigEngine.d.ts +0 -0
- package/lib/{components → types/components}/TemplayedEngine.d.ts +0 -0
- package/lib/{components → types/components}/ToffeeEngine.d.ts +0 -0
- package/lib/{components → types/components}/TwigEngine.d.ts +0 -0
- package/lib/{components → types/components}/TwingEngine.d.ts +0 -0
- package/lib/{components → types/components}/UnderscoreEngine.d.ts +0 -0
- package/lib/{components → types/components}/VashEngine.d.ts +0 -0
- package/lib/{components → types/components}/VelocityEngine.d.ts +0 -0
- package/lib/{components → types/components}/VueEngine.d.ts +2 -2
- package/lib/{components → types/components}/WalrusEngine.d.ts +0 -0
- package/lib/{decorators → types/decorators}/viewEngine.d.ts +0 -0
- package/lib/{index.d.ts → types/index.d.ts} +6 -3
- package/lib/{registries → types/registries}/EnginesContainer.d.ts +0 -0
- package/lib/{utils → types/utils}/cache.d.ts +3 -3
- package/lib/{utils → types/utils}/getEngines.d.ts +0 -0
- package/package.json +34 -26
- package/readme.md +88 -87
- package/tsconfig.compile.esm.json +25 -0
- package/lib/index.js +0 -1211
- package/lib/index.js.map +0 -1
- package/lib/index.modern.js +0 -1198
- package/lib/index.modern.js.map +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let RactiveEngine = class RactiveEngine extends Engine {
|
|
5
|
+
$compile(template, options) {
|
|
6
|
+
const Engine = this.engine;
|
|
7
|
+
const compile = this.engine.parse(template);
|
|
8
|
+
return (options) => {
|
|
9
|
+
options.template = compile;
|
|
10
|
+
return new Engine(this.clean(options)).toHTML();
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
clean(options) {
|
|
14
|
+
if (options.data === null || options.data === undefined) {
|
|
15
|
+
// Shallow clone the options object
|
|
16
|
+
options.data = Object.assign({}, options);
|
|
17
|
+
// Remove consolidate-specific properties from the clone
|
|
18
|
+
let i;
|
|
19
|
+
let length;
|
|
20
|
+
let properties = ["template", "filename", "cache", "partials"];
|
|
21
|
+
for (i = 0, length = properties.length; i < length; i++) {
|
|
22
|
+
const property = properties[i];
|
|
23
|
+
delete options.data[property];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return options;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
RactiveEngine = __decorate([
|
|
30
|
+
ViewEngine("ractive")
|
|
31
|
+
], RactiveEngine);
|
|
32
|
+
export { RactiveEngine };
|
|
33
|
+
//# sourceMappingURL=RactiveEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RactiveEngine.js","sourceRoot":"","sources":["../../../src/components/RactiveEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAgB,MAAM,UAAU,CAAC;AAG/C,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,MAAM;IAC7B,QAAQ,CAAC,QAAgB,EAAE,OAAsB;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO,CAAC,OAAsB,EAAE,EAAE;YAChC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC3B,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,OAAY;QAC1B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YACvD,mCAAmC;YACnC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAE1C,wDAAwD;YACxD,IAAI,CAAC,CAAC;YACN,IAAI,MAAM,CAAC;YACX,IAAI,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAE/D,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC/B;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AA7BY,aAAa;IADzB,UAAU,CAAC,SAAS,CAAC;GACT,aAAa,CA6BzB;SA7BY,aAAa","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine, EngineOptions} from \"./Engine\";\n\n@ViewEngine(\"ractive\")\nexport class RactiveEngine extends Engine {\n protected $compile(template: string, options: EngineOptions) {\n const Engine = this.engine;\n const compile = this.engine.parse(template);\n\n return (options: EngineOptions) => {\n options.template = compile;\n return new Engine(this.clean(options)).toHTML();\n };\n }\n\n protected clean(options: any) {\n if (options.data === null || options.data === undefined) {\n // Shallow clone the options object\n options.data = Object.assign({}, options);\n\n // Remove consolidate-specific properties from the clone\n let i;\n let length;\n let properties = [\"template\", \"filename\", \"cache\", \"partials\"];\n\n for (i = 0, length = properties.length; i < length; i++) {\n const property = properties[i];\n delete options.data[property];\n }\n }\n\n return options;\n }\n}\n"]}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { resolve } from "path";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
5
|
+
import { Engine } from "./Engine.js";
|
|
6
|
+
import { getCachedEngine, getFromCache, importEngine, setToCache } from "../utils/cache.js";
|
|
7
|
+
let ReactEngine = class ReactEngine extends Engine {
|
|
8
|
+
constructor(name, options) {
|
|
9
|
+
super(name, options);
|
|
10
|
+
this.patchRequire();
|
|
11
|
+
}
|
|
12
|
+
async $onInit() {
|
|
13
|
+
await super.$onInit();
|
|
14
|
+
await importEngine("react-dom/server", "ReactDOM");
|
|
15
|
+
await importEngine("@babel/core", "babel");
|
|
16
|
+
}
|
|
17
|
+
get babel() {
|
|
18
|
+
return getCachedEngine("babel");
|
|
19
|
+
}
|
|
20
|
+
get reactDOM() {
|
|
21
|
+
return getCachedEngine("ReactDOM");
|
|
22
|
+
}
|
|
23
|
+
patchRequire() {
|
|
24
|
+
if (require.extensions) {
|
|
25
|
+
// Ensure JSX is transformed on require
|
|
26
|
+
if (!require.extensions[".jsx"]) {
|
|
27
|
+
require.extensions[".jsx"] = this.requireReact.bind(this);
|
|
28
|
+
}
|
|
29
|
+
// Supporting .react extension as well as test cases
|
|
30
|
+
// Using .react extension is not recommended.
|
|
31
|
+
if (!require.extensions[".react"]) {
|
|
32
|
+
require.extensions[".react"] = this.requireReact.bind(this);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
configure(options) {
|
|
37
|
+
const base = options.base;
|
|
38
|
+
delete options.base;
|
|
39
|
+
const enableCache = options.cache;
|
|
40
|
+
delete options.cache;
|
|
41
|
+
const isNonStatic = options.isNonStatic;
|
|
42
|
+
delete options.isNonStatic;
|
|
43
|
+
return { base, enableCache, isNonStatic };
|
|
44
|
+
}
|
|
45
|
+
$compile(template, options) {
|
|
46
|
+
// Assign HTML Base
|
|
47
|
+
const { base, enableCache, isNonStatic } = this.configure(options);
|
|
48
|
+
// Start Conversion
|
|
49
|
+
const Code = this.requireReactString(template);
|
|
50
|
+
const Factory = this.engine.createFactory(Code);
|
|
51
|
+
return () => {
|
|
52
|
+
const parsed = new Factory(options);
|
|
53
|
+
const content = isNonStatic ? this.reactDOM.renderToString(parsed) : this.reactDOM.renderToStaticMarkup(parsed);
|
|
54
|
+
if (base) {
|
|
55
|
+
options.content = content;
|
|
56
|
+
return this.renderWithBase(template, base, enableCache, options);
|
|
57
|
+
}
|
|
58
|
+
return content;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async $compileFile(file, options) {
|
|
62
|
+
// Assign HTML Base
|
|
63
|
+
const { base, enableCache, isNonStatic } = this.configure(options);
|
|
64
|
+
let path = resolve(file);
|
|
65
|
+
delete require.cache[path];
|
|
66
|
+
const ReactDOM = await importEngine("react-dom/server", "ReactDOM");
|
|
67
|
+
const { default: Code } = await import(path);
|
|
68
|
+
const Factory = this.engine.createFactory(Code);
|
|
69
|
+
return () => {
|
|
70
|
+
const parsed = new Factory(options);
|
|
71
|
+
const content = isNonStatic ? ReactDOM.renderToString(parsed) : ReactDOM.renderToStaticMarkup(parsed);
|
|
72
|
+
if (base) {
|
|
73
|
+
options.content = content;
|
|
74
|
+
return this.renderWithBase(file, base, enableCache, options);
|
|
75
|
+
}
|
|
76
|
+
return content;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
renderWithBase(key, base, enableCache, options) {
|
|
80
|
+
const baseStr = getFromCache(key) || readFileSync(resolve(base), "utf8");
|
|
81
|
+
if (enableCache) {
|
|
82
|
+
setToCache(key, baseStr);
|
|
83
|
+
}
|
|
84
|
+
return this.reactBaseTmpl(baseStr, options);
|
|
85
|
+
}
|
|
86
|
+
transformFileSync(filename) {
|
|
87
|
+
return this.babel.transformFileSync(filename, { presets: ["@babel/preset-react"] }).code;
|
|
88
|
+
}
|
|
89
|
+
transform(src) {
|
|
90
|
+
return this.babel.transform(src, { presets: ["@babel/preset-react"] }).code;
|
|
91
|
+
}
|
|
92
|
+
requireReact(module, filename) {
|
|
93
|
+
const compiled = this.transformFileSync(filename);
|
|
94
|
+
return module._compile(compiled, filename);
|
|
95
|
+
}
|
|
96
|
+
requireReactString(src, filename) {
|
|
97
|
+
if (!filename)
|
|
98
|
+
filename = "";
|
|
99
|
+
// @ts-ignore
|
|
100
|
+
const m = new module.constructor();
|
|
101
|
+
filename = filename || "";
|
|
102
|
+
// Compile Using React
|
|
103
|
+
const compiled = this.transform(src);
|
|
104
|
+
// Compile as a module
|
|
105
|
+
m.paths = module.paths;
|
|
106
|
+
m._compile(compiled, filename);
|
|
107
|
+
return m.exports;
|
|
108
|
+
}
|
|
109
|
+
reactBaseTmpl(data, options) {
|
|
110
|
+
let exp;
|
|
111
|
+
let regex;
|
|
112
|
+
// Iterates through the keys in file object
|
|
113
|
+
// and interpolate / replace {{key}} with it's value
|
|
114
|
+
for (const k in options) {
|
|
115
|
+
if (options.hasOwnProperty(k)) {
|
|
116
|
+
exp = `{{${k}}}`;
|
|
117
|
+
regex = new RegExp(exp, "g");
|
|
118
|
+
if (data.match(regex)) {
|
|
119
|
+
data = data.replace(regex, options[k]);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return data;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
ReactEngine = __decorate([
|
|
127
|
+
ViewEngine("react", {
|
|
128
|
+
requires: ["react"]
|
|
129
|
+
}),
|
|
130
|
+
__metadata("design:paramtypes", [String, Object])
|
|
131
|
+
], ReactEngine);
|
|
132
|
+
export { ReactEngine };
|
|
133
|
+
//# sourceMappingURL=ReactEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReactEngine.js","sourceRoot":"","sources":["../../../src/components/ReactEngine.ts"],"names":[],"mappings":"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","sourcesContent":["import {resolve} from \"path\";\nimport {readFileSync} from \"fs\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine, EngineOptions, ViewEngineOptions} from \"./Engine\";\nimport {getCachedEngine, getFromCache, importEngine, setToCache} from \"../utils/cache\";\n\n@ViewEngine(\"react\", {\n requires: [\"react\"]\n})\nexport class ReactEngine extends Engine {\n constructor(name: string, options: ViewEngineOptions) {\n super(name, options);\n this.patchRequire();\n }\n\n async $onInit() {\n await super.$onInit();\n await importEngine(\"react-dom/server\", \"ReactDOM\");\n await importEngine(\"@babel/core\", \"babel\");\n }\n\n get babel() {\n return getCachedEngine(\"babel\");\n }\n\n get reactDOM() {\n return getCachedEngine(\"ReactDOM\");\n }\n\n protected patchRequire() {\n if (require.extensions) {\n // Ensure JSX is transformed on require\n if (!require.extensions[\".jsx\"]) {\n require.extensions[\".jsx\"] = this.requireReact.bind(this);\n }\n\n // Supporting .react extension as well as test cases\n // Using .react extension is not recommended.\n if (!require.extensions[\".react\"]) {\n require.extensions[\".react\"] = this.requireReact.bind(this);\n }\n }\n }\n\n protected configure(options: EngineOptions) {\n const base = options.base;\n delete options.base;\n\n const enableCache = options.cache;\n delete options.cache;\n\n const isNonStatic = options.isNonStatic;\n delete options.isNonStatic;\n return {base, enableCache, isNonStatic};\n }\n\n protected $compile(template: string, options: EngineOptions) {\n // Assign HTML Base\n const {base, enableCache, isNonStatic} = this.configure(options);\n\n // Start Conversion\n const Code = this.requireReactString(template);\n const Factory = this.engine.createFactory(Code);\n\n return () => {\n const parsed = new Factory(options);\n const content = isNonStatic ? this.reactDOM.renderToString(parsed) : this.reactDOM.renderToStaticMarkup(parsed);\n\n if (base) {\n options.content = content;\n\n return this.renderWithBase(template, base, enableCache, options);\n }\n\n return content;\n };\n }\n\n protected async $compileFile(file: string, options: EngineOptions) {\n // Assign HTML Base\n const {base, enableCache, isNonStatic} = this.configure(options);\n\n let path = resolve(file);\n delete require.cache[path];\n\n const ReactDOM = await importEngine(\"react-dom/server\", \"ReactDOM\");\n const {default: Code} = await import(path);\n const Factory = this.engine.createFactory(Code);\n\n return () => {\n const parsed = new Factory(options);\n const content = isNonStatic ? ReactDOM.renderToString(parsed) : ReactDOM.renderToStaticMarkup(parsed);\n\n if (base) {\n options.content = content;\n\n return this.renderWithBase(file, base, enableCache, options);\n }\n\n return content;\n };\n }\n\n protected renderWithBase(key: string, base: any, enableCache: undefined | boolean, options: EngineOptions) {\n const baseStr = getFromCache(key) || readFileSync(resolve(base), \"utf8\");\n\n if (enableCache) {\n setToCache(key, baseStr);\n }\n\n return this.reactBaseTmpl(baseStr, options);\n }\n\n protected transformFileSync(filename: string) {\n return this.babel.transformFileSync(filename, {presets: [\"@babel/preset-react\"]}).code;\n }\n\n protected transform(src: string) {\n return this.babel.transform(src, {presets: [\"@babel/preset-react\"]}).code;\n }\n\n protected requireReact(module: any, filename: string) {\n const compiled = this.transformFileSync(filename);\n return module._compile(compiled, filename);\n }\n\n protected requireReactString(src: string, filename?: string) {\n if (!filename) filename = \"\";\n // @ts-ignore\n const m = new module.constructor();\n filename = filename || \"\";\n\n // Compile Using React\n const compiled = this.transform(src);\n\n // Compile as a module\n m.paths = module.paths;\n m._compile(compiled, filename);\n\n return m.exports;\n }\n\n protected reactBaseTmpl(data: any, options: any) {\n let exp: any;\n let regex: any;\n\n // Iterates through the keys in file object\n // and interpolate / replace {{key}} with it's value\n for (const k in options) {\n if (options.hasOwnProperty(k)) {\n exp = `{{${k}}}`;\n regex = new RegExp(exp, \"g\");\n if (data.match(regex)) {\n data = data.replace(regex, options[k]);\n }\n }\n }\n\n return data;\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let SlmEngine = class SlmEngine extends Engine {
|
|
5
|
+
};
|
|
6
|
+
SlmEngine = __decorate([
|
|
7
|
+
ViewEngine("slm")
|
|
8
|
+
], SlmEngine);
|
|
9
|
+
export { SlmEngine };
|
|
10
|
+
//# sourceMappingURL=SlmEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlmEngine.js","sourceRoot":"","sources":["../../../src/components/SlmEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,MAAM;CAAG,CAAA;AAA3B,SAAS;IADrB,UAAU,CAAC,KAAK,CAAC;GACL,SAAS,CAAkB;SAA3B,SAAS","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"slm\")\nexport class SlmEngine extends Engine {}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let SquirrellyEngine = class SquirrellyEngine extends Engine {
|
|
5
|
+
$compile(template, options) {
|
|
6
|
+
for (const partial in options.partials) {
|
|
7
|
+
this.engine.definePartial(partial, options.partials[partial]);
|
|
8
|
+
}
|
|
9
|
+
for (const helper in options.helpers) {
|
|
10
|
+
this.engine.defineHelper(helper, options.helpers[helper]);
|
|
11
|
+
}
|
|
12
|
+
const compile = this.engine.Compile(template, options);
|
|
13
|
+
return (options) => compile(options, this.engine);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
SquirrellyEngine = __decorate([
|
|
17
|
+
ViewEngine("squirrelly")
|
|
18
|
+
], SquirrellyEngine);
|
|
19
|
+
export { SquirrellyEngine };
|
|
20
|
+
//# sourceMappingURL=SquirrellyEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SquirrellyEngine.js","sourceRoot":"","sources":["../../../src/components/SquirrellyEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAgB,MAAM,UAAU,CAAC;AAG/C,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,MAAM;IAChC,QAAQ,CAAC,QAAgB,EAAE,OAAsB;QACzD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC/D;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3D;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEvD,OAAO,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;CACF,CAAA;AAbY,gBAAgB;IAD5B,UAAU,CAAC,YAAY,CAAC;GACZ,gBAAgB,CAa5B;SAbY,gBAAgB","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine, EngineOptions} from \"./Engine\";\n\n@ViewEngine(\"squirrelly\")\nexport class SquirrellyEngine extends Engine {\n protected $compile(template: string, options: EngineOptions) {\n for (const partial in options.partials) {\n this.engine.definePartial(partial, options.partials[partial]);\n }\n for (const helper in options.helpers) {\n this.engine.defineHelper(helper, options.helpers[helper]);\n }\n\n const compile = this.engine.Compile(template, options);\n\n return (options: EngineOptions) => compile(options, this.engine);\n }\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let SwigEngine = class SwigEngine extends Engine {
|
|
5
|
+
$compile(template, options) {
|
|
6
|
+
if (options.cache === true)
|
|
7
|
+
options.cache = "memory";
|
|
8
|
+
this.engine.setDefaults({ cache: options.cache });
|
|
9
|
+
return this.engine.compile(template, options);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
SwigEngine = __decorate([
|
|
13
|
+
ViewEngine("swig", {
|
|
14
|
+
requires: ["swig", "swig-templates"]
|
|
15
|
+
})
|
|
16
|
+
], SwigEngine);
|
|
17
|
+
export { SwigEngine };
|
|
18
|
+
//# sourceMappingURL=SwigEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwigEngine.js","sourceRoot":"","sources":["../../../src/components/SwigEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAKhC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,MAAM;IAC1B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;QAEhD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAPY,UAAU;IAHtB,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACrC,CAAC;GACW,UAAU,CAOtB;SAPY,UAAU","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"swig\", {\n requires: [\"swig\", \"swig-templates\"]\n})\nexport class SwigEngine extends Engine {\n protected $compile(template: string, options: any): (options: any) => Promise<string> {\n if (options.cache === true) options.cache = \"memory\";\n this.engine.setDefaults({cache: options.cache});\n\n return this.engine.compile(template, options);\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let TemplayedEngine = class TemplayedEngine extends Engine {
|
|
5
|
+
$compile(template, options) {
|
|
6
|
+
return this.engine(template);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
TemplayedEngine = __decorate([
|
|
10
|
+
ViewEngine("templayed")
|
|
11
|
+
], TemplayedEngine);
|
|
12
|
+
export { TemplayedEngine };
|
|
13
|
+
//# sourceMappingURL=TemplayedEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplayedEngine.js","sourceRoot":"","sources":["../../../src/components/TemplayedEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,MAAM;IAC/B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;CACF,CAAA;AAJY,eAAe;IAD3B,UAAU,CAAC,WAAW,CAAC;GACX,eAAe,CAI3B;SAJY,eAAe","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"templayed\")\nexport class TemplayedEngine extends Engine {\n protected $compile(template: string, options: any) {\n return this.engine(template);\n }\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { promisify } from "util";
|
|
3
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
4
|
+
import { Engine } from "./Engine.js";
|
|
5
|
+
let ToffeeEngine = class ToffeeEngine extends Engine {
|
|
6
|
+
$compile(template, options) {
|
|
7
|
+
const compile = promisify(this.engine.str_render.bind(this.engine));
|
|
8
|
+
return (options) => compile(template, options);
|
|
9
|
+
}
|
|
10
|
+
async $compileFile(file, options) {
|
|
11
|
+
const compile = promisify(this.engine.__consolidate_engine_render.bind(this.engine));
|
|
12
|
+
return (options) => compile(file, options);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
ToffeeEngine = __decorate([
|
|
16
|
+
ViewEngine("toffee")
|
|
17
|
+
], ToffeeEngine);
|
|
18
|
+
export { ToffeeEngine };
|
|
19
|
+
//# sourceMappingURL=ToffeeEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToffeeEngine.js","sourceRoot":"","sources":["../../../src/components/ToffeeEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,MAAM;IAC5B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpE,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAY;QACrD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAErF,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAZY,YAAY;IADxB,UAAU,CAAC,QAAQ,CAAC;GACR,YAAY,CAYxB;SAZY,YAAY","sourcesContent":["import {promisify} from \"util\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"toffee\")\nexport class ToffeeEngine extends Engine {\n protected $compile(template: string, options: any) {\n const compile = promisify(this.engine.str_render.bind(this.engine));\n\n return (options: any) => compile(template, options);\n }\n\n protected async $compileFile(file: string, options: any) {\n const compile = promisify(this.engine.__consolidate_engine_render.bind(this.engine));\n\n return (options: any) => compile(file, options);\n }\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let TwigEngine = class TwigEngine extends Engine {
|
|
5
|
+
$cacheOptions(template, options) {
|
|
6
|
+
return {
|
|
7
|
+
...options,
|
|
8
|
+
data: template,
|
|
9
|
+
allowInlineIncludes: options.allowInlineIncludes,
|
|
10
|
+
namespaces: options.namespaces,
|
|
11
|
+
path: options.path
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
$compile(template, options) {
|
|
15
|
+
const { twig: engine } = this.engine;
|
|
16
|
+
options.data = template;
|
|
17
|
+
const compile = engine(options);
|
|
18
|
+
return (options) => compile.render(options);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
TwigEngine = __decorate([
|
|
22
|
+
ViewEngine("twig")
|
|
23
|
+
], TwigEngine);
|
|
24
|
+
export { TwigEngine };
|
|
25
|
+
//# sourceMappingURL=TwigEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TwigEngine.js","sourceRoot":"","sources":["../../../src/components/TwigEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAgB,MAAM,UAAU,CAAC;AAG/C,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,MAAM;IAC1B,aAAa,CAAC,QAAgB,EAAE,OAAY;QACpD,OAAO;YACL,GAAG,OAAO;YACV,IAAI,EAAE,QAAQ;YACd,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;IACJ,CAAC;IAES,QAAQ,CAAC,QAAgB,EAAE,OAAsB;QACzD,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QAExB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO,CAAC,OAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF,CAAA;AAnBY,UAAU;IADtB,UAAU,CAAC,MAAM,CAAC;GACN,UAAU,CAmBtB;SAnBY,UAAU","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine, EngineOptions} from \"./Engine\";\n\n@ViewEngine(\"twig\")\nexport class TwigEngine extends Engine {\n protected $cacheOptions(template: string, options: any) {\n return {\n ...options,\n data: template,\n allowInlineIncludes: options.allowInlineIncludes,\n namespaces: options.namespaces,\n path: options.path\n };\n }\n\n protected $compile(template: string, options: EngineOptions) {\n const {twig: engine} = this.engine;\n options.data = template;\n\n const compile = engine(options);\n\n return (options: EngineOptions) => compile.render(options);\n }\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
import { existsSync } from "fs";
|
|
5
|
+
let TwingEngine = class TwingEngine extends Engine {
|
|
6
|
+
$compile(template, options) {
|
|
7
|
+
const engine = this.engine;
|
|
8
|
+
if (!this.instance) {
|
|
9
|
+
let loader = new engine.TwingLoaderNull();
|
|
10
|
+
if (options.settings && options.settings.views && existsSync(options.settings.views)) {
|
|
11
|
+
loader = new engine.TwingLoaderFilesystem(options.settings.views);
|
|
12
|
+
}
|
|
13
|
+
this.instance = new engine.TwingEnvironment(loader);
|
|
14
|
+
}
|
|
15
|
+
const $cmp = this.instance.createTemplate(template);
|
|
16
|
+
return async (options) => {
|
|
17
|
+
const compile = await $cmp;
|
|
18
|
+
return compile.render(options);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
TwingEngine = __decorate([
|
|
23
|
+
ViewEngine("twing")
|
|
24
|
+
], TwingEngine);
|
|
25
|
+
export { TwingEngine };
|
|
26
|
+
//# sourceMappingURL=TwingEngine.js.map
|
|
@@ -0,0 +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;IAG3B,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"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let UnderscoreEngine = class UnderscoreEngine extends Engine {
|
|
5
|
+
async render(template, options) {
|
|
6
|
+
const tpl = await this.compile(template, options)(options);
|
|
7
|
+
return tpl.replace(/\n$/, "");
|
|
8
|
+
}
|
|
9
|
+
$cacheOptions(template, options) {
|
|
10
|
+
const partials = {};
|
|
11
|
+
for (const partial in options.partials) {
|
|
12
|
+
partials[partial] = this.engine.template(options.partials[partial]);
|
|
13
|
+
}
|
|
14
|
+
options.partials = partials;
|
|
15
|
+
return options;
|
|
16
|
+
}
|
|
17
|
+
$compile(template, options) {
|
|
18
|
+
return this.engine.template(template, null, options);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
UnderscoreEngine = __decorate([
|
|
22
|
+
ViewEngine("underscore")
|
|
23
|
+
], UnderscoreEngine);
|
|
24
|
+
export { UnderscoreEngine };
|
|
25
|
+
//# sourceMappingURL=UnderscoreEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnderscoreEngine.js","sourceRoot":"","sources":["../../../src/components/UnderscoreEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,MAAM;IAC1C,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,OAAY;QACzC,MAAM,GAAG,GAAW,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAES,aAAa,CAAC,QAAgB,EAAE,OAAY;QACpD,MAAM,QAAQ,GAAQ,EAAE,CAAC;QAEzB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;YACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SACrE;QAED,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AArBY,gBAAgB;IAD5B,UAAU,CAAC,YAAY,CAAC;GACZ,gBAAgB,CAqB5B;SArBY,gBAAgB","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"underscore\")\nexport class UnderscoreEngine extends Engine {\n async render(template: string, options: any) {\n const tpl: string = await this.compile(template, options)(options);\n return tpl.replace(/\\n$/, \"\");\n }\n\n protected $cacheOptions(template: string, options: any): any {\n const partials: any = {};\n\n for (const partial in options.partials) {\n partials[partial] = this.engine.template(options.partials[partial]);\n }\n\n options.partials = partials;\n\n return options;\n }\n\n protected $compile(template: string, options: any): (options: any) => Promise<string> {\n return this.engine.template(template, null, options);\n }\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { promisify } from "util";
|
|
3
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
4
|
+
import { Engine } from "./Engine.js";
|
|
5
|
+
let VashEngine = class VashEngine extends Engine {
|
|
6
|
+
compile(template, options) {
|
|
7
|
+
if (options.helpers) {
|
|
8
|
+
for (const key in options.helpers) {
|
|
9
|
+
if (!options.helpers.hasOwnProperty(key) || typeof options.helpers[key] !== "function") {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
this.engine.helpers[key] = options.helpers[key];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const compile = promisify(this.engine.compile(template, options));
|
|
16
|
+
return async (options) => {
|
|
17
|
+
const ctx = await compile(options);
|
|
18
|
+
ctx.finishLayout();
|
|
19
|
+
return ctx.toString();
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
async render(template, options) {
|
|
23
|
+
const compile = this.compile(template, options);
|
|
24
|
+
const tpl = await compile(options);
|
|
25
|
+
return tpl.replace(/\n$/, "");
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
VashEngine = __decorate([
|
|
29
|
+
ViewEngine("vash")
|
|
30
|
+
], VashEngine);
|
|
31
|
+
export { VashEngine };
|
|
32
|
+
//# sourceMappingURL=VashEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VashEngine.js","sourceRoot":"","sources":["../../../src/components/VashEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,MAAM;IACpC,OAAO,CAAC,QAAgB,EAAE,OAAY;QACpC,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;gBACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;oBACtF,SAAS;iBACV;gBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACjD;SACF;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAElE,OAAO,KAAK,EAAE,OAAY,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,GAAG,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,OAAY;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEhD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;CACF,CAAA;AA1BY,UAAU;IADtB,UAAU,CAAC,MAAM,CAAC;GACN,UAAU,CA0BtB;SA1BY,UAAU","sourcesContent":["import {promisify} from \"util\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"vash\")\nexport class VashEngine extends Engine {\n compile(template: string, options: any): (options: any) => Promise<string> {\n if (options.helpers) {\n for (const key in options.helpers) {\n if (!options.helpers.hasOwnProperty(key) || typeof options.helpers[key] !== \"function\") {\n continue;\n }\n this.engine.helpers[key] = options.helpers[key];\n }\n }\n\n const compile = promisify(this.engine.compile(template, options));\n\n return async (options: any) => {\n const ctx = await compile(options);\n ctx.finishLayout();\n return ctx.toString();\n };\n }\n\n async render(template: string, options: any) {\n const compile = this.compile(template, options);\n\n const tpl = await compile(options);\n return tpl.replace(/\\n$/, \"\");\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
let VelocityEngine = class VelocityEngine extends Engine {
|
|
5
|
+
$compile(template, options) {
|
|
6
|
+
return async (options) => {
|
|
7
|
+
return this.engine.render(template, options).trimLeft();
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
VelocityEngine = __decorate([
|
|
12
|
+
ViewEngine("velocityjs")
|
|
13
|
+
], VelocityEngine);
|
|
14
|
+
export { VelocityEngine };
|
|
15
|
+
//# sourceMappingURL=VelocityEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VelocityEngine.js","sourceRoot":"","sources":["../../../src/components/VelocityEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAgB,MAAM,UAAU,CAAC;AAG/C,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,MAAM;IAC9B,QAAQ,CAAC,QAAgB,EAAE,OAAsB;QACzD,OAAO,KAAK,EAAE,OAAsB,EAAE,EAAE;YACtC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AANY,cAAc;IAD1B,UAAU,CAAC,YAAY,CAAC;GACZ,cAAc,CAM1B;SANY,cAAc","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine, EngineOptions} from \"./Engine\";\n\n@ViewEngine(\"velocityjs\")\nexport class VelocityEngine extends Engine {\n protected $compile(template: string, options: EngineOptions) {\n return async (options: EngineOptions) => {\n return this.engine.render(template, options).trimLeft();\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
var _VueEngine_renderToString;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet, __decorate } from "tslib";
|
|
3
|
+
import { Engine } from "./Engine.js";
|
|
4
|
+
import { ViewEngine } from "../decorators/viewEngine.js";
|
|
5
|
+
import { getCachedEngine, importEngine } from "../utils/cache.js";
|
|
6
|
+
import { join, resolve } from "path";
|
|
7
|
+
import { promisify } from "util";
|
|
8
|
+
function requireFromString(src, filename) {
|
|
9
|
+
const Module = module.constructor;
|
|
10
|
+
const m = new Module();
|
|
11
|
+
m._compile(src, filename);
|
|
12
|
+
return m.exports;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* simple hash a string
|
|
16
|
+
* https://stackoverflow.com/a/34842797/493756
|
|
17
|
+
*/
|
|
18
|
+
function hashCode(str) {
|
|
19
|
+
return str.split("").reduce((prevHash, currVal) => (prevHash << 5) - prevHash + currVal.charCodeAt(0), 0);
|
|
20
|
+
}
|
|
21
|
+
let VueEngine = class VueEngine extends Engine {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
_VueEngine_renderToString.set(this, void 0);
|
|
25
|
+
}
|
|
26
|
+
async $onInit() {
|
|
27
|
+
await super.$onInit();
|
|
28
|
+
await importEngine("vue-pronto/lib/index", "pronto");
|
|
29
|
+
await importEngine("vueify");
|
|
30
|
+
await importEngine("vue-server-renderer");
|
|
31
|
+
const ssrRenderer = this.vueServerRenderer.createRenderer();
|
|
32
|
+
__classPrivateFieldSet(this, _VueEngine_renderToString, promisify(ssrRenderer.renderToString.bind(this)), "f");
|
|
33
|
+
}
|
|
34
|
+
get pronto() {
|
|
35
|
+
return getCachedEngine("pronto");
|
|
36
|
+
}
|
|
37
|
+
get vueify() {
|
|
38
|
+
return getCachedEngine("vueify");
|
|
39
|
+
}
|
|
40
|
+
get vueServerRenderer() {
|
|
41
|
+
return getCachedEngine("vue-server-renderer");
|
|
42
|
+
}
|
|
43
|
+
$cacheOptions(template, options, fromFile) {
|
|
44
|
+
const fullPath = join(__dirname, `/${hashCode(template)}`);
|
|
45
|
+
if (!fromFile) {
|
|
46
|
+
return {
|
|
47
|
+
...options,
|
|
48
|
+
filename: fullPath
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return options;
|
|
52
|
+
}
|
|
53
|
+
$compile(template, options) {
|
|
54
|
+
// make up a fake path
|
|
55
|
+
const fullPath = join(__dirname, `/${hashCode(template)}`);
|
|
56
|
+
const promise = this.getComponent(fullPath, template, options);
|
|
57
|
+
return async (options) => {
|
|
58
|
+
return this.renderComponent(await promise, options);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async $compileFile(file, options) {
|
|
62
|
+
// prontoRenderer assume that the filepath is relative to a passed "rootpath"
|
|
63
|
+
// and if you don't pass a rootpath it will try to find one
|
|
64
|
+
// based on its current __dirname
|
|
65
|
+
// https://github.com/express-vue/vue-pronto/blob/c88e380fee8656bc3ed21c7d3adb2ef331be07d5/lib/utils/findPaths.js#L10-L18
|
|
66
|
+
const fullPath = resolve(file);
|
|
67
|
+
const rootPath = process.cwd();
|
|
68
|
+
const filepath = fullPath.replace(`${rootPath}/`, "");
|
|
69
|
+
const prontoOptions = {
|
|
70
|
+
rootPath,
|
|
71
|
+
vueVersion: { disabled: true }
|
|
72
|
+
};
|
|
73
|
+
if (!options.cache) {
|
|
74
|
+
// disable pronto lru cache
|
|
75
|
+
prontoOptions.cacheOptions = { max: 0 };
|
|
76
|
+
}
|
|
77
|
+
let prontoRenderer = new this.pronto.ProntoVueify(prontoOptions);
|
|
78
|
+
if (!options.cache) {
|
|
79
|
+
// disable pronto internal cache
|
|
80
|
+
// yup
|
|
81
|
+
prontoRenderer.internalCache = {
|
|
82
|
+
get: () => { },
|
|
83
|
+
set: () => { }
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// so, this ties each "renderer" to a rootPath
|
|
88
|
+
// so I have to create a new prontoRenderer each time
|
|
89
|
+
// which sucks! because I loose the internal cache of it,
|
|
90
|
+
// unless, I keep tabs on both lru and internal caches and replace them every time.
|
|
91
|
+
const internalCache = prontoRenderer.internalCache;
|
|
92
|
+
prontoRenderer.internalCache = {
|
|
93
|
+
get: internalCache.get.bind(internalCache),
|
|
94
|
+
set(filename, component) {
|
|
95
|
+
internalCache.set(filename, {
|
|
96
|
+
...component,
|
|
97
|
+
data: component.data || (() => options)
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return (options) => {
|
|
103
|
+
return prontoRenderer.RenderToString(filepath, {}, {
|
|
104
|
+
propsData: options
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async getComponent(fullPath, template, options) {
|
|
109
|
+
// assume that the str the content of a <template> ... </template>
|
|
110
|
+
if (/<template/.test(template.trim())) {
|
|
111
|
+
// assume that the str is a fileContent of a .vue file
|
|
112
|
+
const compile = promisify(this.vueify.compiler.compile.bind(this.vueify.compiler));
|
|
113
|
+
const cmp = await compile(template, fullPath);
|
|
114
|
+
return requireFromString(cmp, fullPath);
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
template,
|
|
118
|
+
data() {
|
|
119
|
+
return options;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
async renderComponent(Component, options) {
|
|
124
|
+
let Factory = this.engine.extend(Component);
|
|
125
|
+
let instance = new Factory({ propsData: options });
|
|
126
|
+
return __classPrivateFieldGet(this, _VueEngine_renderToString, "f").call(this, instance);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
_VueEngine_renderToString = new WeakMap();
|
|
130
|
+
VueEngine = __decorate([
|
|
131
|
+
ViewEngine("vue", {
|
|
132
|
+
requires: "vue"
|
|
133
|
+
})
|
|
134
|
+
], VueEngine);
|
|
135
|
+
export { VueEngine };
|
|
136
|
+
//# sourceMappingURL=VueEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|