@tsed/engines 1.1.4 → 7.0.0-beta.5

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.
Files changed (226) hide show
  1. package/.mocharc.js +5 -0
  2. package/.nycrc +26 -0
  3. package/lib/cjs/components/AtplEngine.js +13 -0
  4. package/lib/cjs/components/AtplEngine.js.map +1 -0
  5. package/lib/cjs/components/BracketEngine.js +18 -0
  6. package/lib/cjs/components/BracketEngine.js.map +1 -0
  7. package/lib/cjs/components/DotEngine.js +20 -0
  8. package/lib/cjs/components/DotEngine.js.map +1 -0
  9. package/lib/cjs/components/DustEngine.js +60 -0
  10. package/lib/cjs/components/DustEngine.js.map +1 -0
  11. package/lib/cjs/components/EctEngine.js +27 -0
  12. package/lib/cjs/components/EctEngine.js.map +1 -0
  13. package/lib/cjs/components/EjsEngine.js +13 -0
  14. package/lib/cjs/components/EjsEngine.js.map +1 -0
  15. package/lib/cjs/components/Engine.js +63 -0
  16. package/lib/cjs/components/Engine.js.map +1 -0
  17. package/lib/cjs/components/HamlCoffeeEngine.js +13 -0
  18. package/lib/cjs/components/HamlCoffeeEngine.js.map +1 -0
  19. package/lib/cjs/components/HamlEngine.js +19 -0
  20. package/lib/cjs/components/HamlEngine.js.map +1 -0
  21. package/lib/cjs/components/HamletEngine.js +19 -0
  22. package/lib/cjs/components/HamletEngine.js.map +1 -0
  23. package/lib/cjs/components/HandlebarsEngine.js +25 -0
  24. package/lib/cjs/components/HandlebarsEngine.js.map +1 -0
  25. package/lib/cjs/components/HoganEngine.js +21 -0
  26. package/lib/cjs/components/HoganEngine.js.map +1 -0
  27. package/lib/cjs/components/HtmlingEngine.js +17 -0
  28. package/lib/cjs/components/HtmlingEngine.js.map +1 -0
  29. package/lib/cjs/components/JazzEngine.js +17 -0
  30. package/lib/cjs/components/JazzEngine.js.map +1 -0
  31. package/lib/cjs/components/JqtplEngine.js +17 -0
  32. package/lib/cjs/components/JqtplEngine.js.map +1 -0
  33. package/lib/cjs/components/JustEngine.js +27 -0
  34. package/lib/cjs/components/JustEngine.js.map +1 -0
  35. package/lib/cjs/components/LiquorEngine.js +13 -0
  36. package/lib/cjs/components/LiquorEngine.js.map +1 -0
  37. package/lib/cjs/components/LodashEngine.js +20 -0
  38. package/lib/cjs/components/LodashEngine.js.map +1 -0
  39. package/lib/cjs/components/MarkoEngine.js +29 -0
  40. package/lib/cjs/components/MarkoEngine.js.map +1 -0
  41. package/lib/cjs/components/MoteEngine.js +13 -0
  42. package/lib/cjs/components/MoteEngine.js.map +1 -0
  43. package/lib/cjs/components/MustacheEngine.js +16 -0
  44. package/lib/cjs/components/MustacheEngine.js.map +1 -0
  45. package/lib/cjs/components/NunjucksEngine.js +56 -0
  46. package/lib/cjs/components/NunjucksEngine.js.map +1 -0
  47. package/lib/cjs/components/PlatesEngine.js +19 -0
  48. package/lib/cjs/components/PlatesEngine.js.map +1 -0
  49. package/lib/cjs/components/PugEngine.js +21 -0
  50. package/lib/cjs/components/PugEngine.js.map +1 -0
  51. package/lib/cjs/components/RactiveEngine.js +36 -0
  52. package/lib/cjs/components/RactiveEngine.js.map +1 -0
  53. package/lib/cjs/components/ReactEngine.js +136 -0
  54. package/lib/cjs/components/ReactEngine.js.map +1 -0
  55. package/lib/cjs/components/SlmEngine.js +13 -0
  56. package/lib/cjs/components/SlmEngine.js.map +1 -0
  57. package/lib/cjs/components/SquirrellyEngine.js +23 -0
  58. package/lib/cjs/components/SquirrellyEngine.js.map +1 -0
  59. package/lib/cjs/components/SwigEngine.js +21 -0
  60. package/lib/cjs/components/SwigEngine.js.map +1 -0
  61. package/lib/cjs/components/TemplayedEngine.js +16 -0
  62. package/lib/cjs/components/TemplayedEngine.js.map +1 -0
  63. package/lib/cjs/components/ToffeeEngine.js +22 -0
  64. package/lib/cjs/components/ToffeeEngine.js.map +1 -0
  65. package/lib/cjs/components/TwigEngine.js +28 -0
  66. package/lib/cjs/components/TwigEngine.js.map +1 -0
  67. package/lib/cjs/components/TwingEngine.js +29 -0
  68. package/lib/cjs/components/TwingEngine.js.map +1 -0
  69. package/lib/cjs/components/UnderscoreEngine.js +28 -0
  70. package/lib/cjs/components/UnderscoreEngine.js.map +1 -0
  71. package/lib/cjs/components/VashEngine.js +35 -0
  72. package/lib/cjs/components/VashEngine.js.map +1 -0
  73. package/lib/cjs/components/VelocityEngine.js +18 -0
  74. package/lib/cjs/components/VelocityEngine.js.map +1 -0
  75. package/lib/cjs/components/VueEngine.js +139 -0
  76. package/lib/cjs/components/VueEngine.js.map +1 -0
  77. package/lib/cjs/components/WalrusEngine.js +17 -0
  78. package/lib/cjs/components/WalrusEngine.js.map +1 -0
  79. package/lib/cjs/decorators/viewEngine.js +11 -0
  80. package/lib/cjs/decorators/viewEngine.js.map +1 -0
  81. package/lib/cjs/index.js +49 -0
  82. package/lib/cjs/index.js.map +1 -0
  83. package/lib/cjs/package.json +3 -0
  84. package/lib/cjs/registries/EnginesContainer.js +31 -0
  85. package/lib/cjs/registries/EnginesContainer.js.map +1 -0
  86. package/lib/cjs/utils/cache.js +140 -0
  87. package/lib/cjs/utils/cache.js.map +1 -0
  88. package/lib/cjs/utils/getEngines.js +47 -0
  89. package/lib/cjs/utils/getEngines.js.map +1 -0
  90. package/lib/esm/components/AtplEngine.js +10 -0
  91. package/lib/esm/components/AtplEngine.js.map +1 -0
  92. package/lib/esm/components/BracketEngine.js +15 -0
  93. package/lib/esm/components/BracketEngine.js.map +1 -0
  94. package/lib/esm/components/DotEngine.js +17 -0
  95. package/lib/esm/components/DotEngine.js.map +1 -0
  96. package/lib/esm/components/DustEngine.js +57 -0
  97. package/lib/esm/components/DustEngine.js.map +1 -0
  98. package/lib/esm/components/EctEngine.js +24 -0
  99. package/lib/esm/components/EctEngine.js.map +1 -0
  100. package/lib/esm/components/EjsEngine.js +10 -0
  101. package/lib/esm/components/EjsEngine.js.map +1 -0
  102. package/lib/esm/components/Engine.js +59 -0
  103. package/lib/esm/components/Engine.js.map +1 -0
  104. package/lib/esm/components/HamlCoffeeEngine.js +10 -0
  105. package/lib/esm/components/HamlCoffeeEngine.js.map +1 -0
  106. package/lib/esm/components/HamlEngine.js +16 -0
  107. package/lib/esm/components/HamlEngine.js.map +1 -0
  108. package/lib/esm/components/HamletEngine.js +16 -0
  109. package/lib/esm/components/HamletEngine.js.map +1 -0
  110. package/lib/esm/components/HandlebarsEngine.js +22 -0
  111. package/lib/esm/components/HandlebarsEngine.js.map +1 -0
  112. package/lib/esm/components/HoganEngine.js +18 -0
  113. package/lib/esm/components/HoganEngine.js.map +1 -0
  114. package/lib/esm/components/HtmlingEngine.js +14 -0
  115. package/lib/esm/components/HtmlingEngine.js.map +1 -0
  116. package/lib/esm/components/JazzEngine.js +14 -0
  117. package/lib/esm/components/JazzEngine.js.map +1 -0
  118. package/lib/esm/components/JqtplEngine.js +14 -0
  119. package/lib/esm/components/JqtplEngine.js.map +1 -0
  120. package/lib/esm/components/JustEngine.js +24 -0
  121. package/lib/esm/components/JustEngine.js.map +1 -0
  122. package/lib/esm/components/LiquorEngine.js +10 -0
  123. package/lib/esm/components/LiquorEngine.js.map +1 -0
  124. package/lib/esm/components/LodashEngine.js +17 -0
  125. package/lib/esm/components/LodashEngine.js.map +1 -0
  126. package/lib/esm/components/MarkoEngine.js +26 -0
  127. package/lib/esm/components/MarkoEngine.js.map +1 -0
  128. package/lib/esm/components/MoteEngine.js +10 -0
  129. package/lib/esm/components/MoteEngine.js.map +1 -0
  130. package/lib/esm/components/MustacheEngine.js +13 -0
  131. package/lib/esm/components/MustacheEngine.js.map +1 -0
  132. package/lib/esm/components/NunjucksEngine.js +53 -0
  133. package/lib/esm/components/NunjucksEngine.js.map +1 -0
  134. package/lib/esm/components/PlatesEngine.js +16 -0
  135. package/lib/esm/components/PlatesEngine.js.map +1 -0
  136. package/lib/esm/components/PugEngine.js +18 -0
  137. package/lib/esm/components/PugEngine.js.map +1 -0
  138. package/lib/esm/components/RactiveEngine.js +33 -0
  139. package/lib/esm/components/RactiveEngine.js.map +1 -0
  140. package/lib/esm/components/ReactEngine.js +133 -0
  141. package/lib/esm/components/ReactEngine.js.map +1 -0
  142. package/lib/esm/components/SlmEngine.js +10 -0
  143. package/lib/esm/components/SlmEngine.js.map +1 -0
  144. package/lib/esm/components/SquirrellyEngine.js +20 -0
  145. package/lib/esm/components/SquirrellyEngine.js.map +1 -0
  146. package/lib/esm/components/SwigEngine.js +18 -0
  147. package/lib/esm/components/SwigEngine.js.map +1 -0
  148. package/lib/esm/components/TemplayedEngine.js +13 -0
  149. package/lib/esm/components/TemplayedEngine.js.map +1 -0
  150. package/lib/esm/components/ToffeeEngine.js +19 -0
  151. package/lib/esm/components/ToffeeEngine.js.map +1 -0
  152. package/lib/esm/components/TwigEngine.js +25 -0
  153. package/lib/esm/components/TwigEngine.js.map +1 -0
  154. package/lib/esm/components/TwingEngine.js +26 -0
  155. package/lib/esm/components/TwingEngine.js.map +1 -0
  156. package/lib/esm/components/UnderscoreEngine.js +25 -0
  157. package/lib/esm/components/UnderscoreEngine.js.map +1 -0
  158. package/lib/esm/components/VashEngine.js +32 -0
  159. package/lib/esm/components/VashEngine.js.map +1 -0
  160. package/lib/esm/components/VelocityEngine.js +15 -0
  161. package/lib/esm/components/VelocityEngine.js.map +1 -0
  162. package/lib/esm/components/VueEngine.js +136 -0
  163. package/lib/esm/components/VueEngine.js.map +1 -0
  164. package/lib/esm/components/WalrusEngine.js +14 -0
  165. package/lib/esm/components/WalrusEngine.js.map +1 -0
  166. package/lib/esm/decorators/viewEngine.js +7 -0
  167. package/lib/esm/decorators/viewEngine.js.map +1 -0
  168. package/lib/esm/index.js +46 -0
  169. package/lib/esm/index.js.map +1 -0
  170. package/lib/esm/package.json +3 -0
  171. package/lib/esm/registries/EnginesContainer.js +27 -0
  172. package/lib/esm/registries/EnginesContainer.js.map +1 -0
  173. package/lib/esm/utils/cache.js +127 -0
  174. package/lib/esm/utils/cache.js.map +1 -0
  175. package/lib/esm/utils/getEngines.js +42 -0
  176. package/lib/esm/utils/getEngines.js.map +1 -0
  177. package/lib/{components → types/components}/AtplEngine.d.ts +0 -0
  178. package/lib/{components → types/components}/BracketEngine.d.ts +0 -0
  179. package/lib/{components → types/components}/DotEngine.d.ts +0 -0
  180. package/lib/{components → types/components}/DustEngine.d.ts +0 -0
  181. package/lib/{components → types/components}/EctEngine.d.ts +0 -0
  182. package/lib/{components → types/components}/EjsEngine.d.ts +0 -0
  183. package/lib/{components → types/components}/Engine.d.ts +4 -1
  184. package/lib/{components → types/components}/HamlCoffeeEngine.d.ts +0 -0
  185. package/lib/{components → types/components}/HamlEngine.d.ts +0 -0
  186. package/lib/{components → types/components}/HamletEngine.d.ts +0 -0
  187. package/lib/{components → types/components}/HandlebarsEngine.d.ts +0 -0
  188. package/lib/{components → types/components}/HoganEngine.d.ts +0 -0
  189. package/lib/{components → types/components}/HtmlingEngine.d.ts +0 -0
  190. package/lib/{components → types/components}/JazzEngine.d.ts +0 -0
  191. package/lib/{components → types/components}/JqtplEngine.d.ts +0 -0
  192. package/lib/{components → types/components}/JustEngine.d.ts +0 -0
  193. package/lib/{components → types/components}/LiquorEngine.d.ts +0 -0
  194. package/lib/{components → types/components}/LodashEngine.d.ts +0 -0
  195. package/lib/{components → types/components}/MarkoEngine.d.ts +0 -0
  196. package/lib/{components → types/components}/MoteEngine.d.ts +0 -0
  197. package/lib/{components → types/components}/MustacheEngine.d.ts +0 -0
  198. package/lib/{components → types/components}/NunjucksEngine.d.ts +0 -0
  199. package/lib/{components → types/components}/PlatesEngine.d.ts +0 -0
  200. package/lib/{components → types/components}/PugEngine.d.ts +0 -0
  201. package/lib/{components → types/components}/RactiveEngine.d.ts +0 -0
  202. package/lib/{components → types/components}/ReactEngine.d.ts +3 -0
  203. package/lib/{components → types/components}/SlmEngine.d.ts +0 -0
  204. package/lib/{components → types/components}/SquirrellyEngine.d.ts +0 -0
  205. package/lib/{components → types/components}/SwigEngine.d.ts +0 -0
  206. package/lib/{components → types/components}/TemplayedEngine.d.ts +0 -0
  207. package/lib/{components → types/components}/ToffeeEngine.d.ts +0 -0
  208. package/lib/{components → types/components}/TwigEngine.d.ts +0 -0
  209. package/lib/{components → types/components}/TwingEngine.d.ts +0 -0
  210. package/lib/{components → types/components}/UnderscoreEngine.d.ts +0 -0
  211. package/lib/{components → types/components}/VashEngine.d.ts +0 -0
  212. package/lib/{components → types/components}/VelocityEngine.d.ts +0 -0
  213. package/lib/{components → types/components}/VueEngine.d.ts +2 -2
  214. package/lib/{components → types/components}/WalrusEngine.d.ts +0 -0
  215. package/lib/{decorators → types/decorators}/viewEngine.d.ts +0 -0
  216. package/lib/{index.d.ts → types/index.d.ts} +6 -3
  217. package/lib/{registries → types/registries}/EnginesContainer.d.ts +0 -0
  218. package/lib/{utils → types/utils}/cache.d.ts +3 -3
  219. package/lib/{utils → types/utils}/getEngines.d.ts +0 -0
  220. package/package.json +35 -27
  221. package/readme.md +91 -90
  222. package/tsconfig.compile.esm.json +25 -0
  223. package/lib/index.js +0 -1211
  224. package/lib/index.js.map +0 -1
  225. package/lib/index.modern.js +0 -1198
  226. package/lib/index.modern.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VashEngine.js","sourceRoot":"","sources":["../../../src/components/VashEngine.ts"],"names":[],"mappings":";;;;AAAA,+BAA+B;AAC/B,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,eAAM;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,IAAA,gBAAS,EAAC,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,IAAA,uBAAU,EAAC,MAAM,CAAC;GACN,UAAU,CA0BtB;AA1BY,gCAAU","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,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VelocityEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let VelocityEngine = class VelocityEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ return async (options) => {
10
+ return this.engine.render(template, options).trimLeft();
11
+ };
12
+ }
13
+ };
14
+ VelocityEngine = tslib_1.__decorate([
15
+ (0, viewEngine_1.ViewEngine)("velocityjs")
16
+ ], VelocityEngine);
17
+ exports.VelocityEngine = VelocityEngine;
18
+ //# sourceMappingURL=VelocityEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VelocityEngine.js","sourceRoot":"","sources":["../../../src/components/VelocityEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAA+C;AAG/C,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,eAAM;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,IAAA,uBAAU,EAAC,YAAY,CAAC;GACZ,cAAc,CAM1B;AANY,wCAAc","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,139 @@
1
+ "use strict";
2
+ var _VueEngine_renderToString;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.VueEngine = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const Engine_1 = require("./Engine");
7
+ const viewEngine_1 = require("../decorators/viewEngine");
8
+ const cache_1 = require("../utils/cache");
9
+ const path_1 = require("path");
10
+ const util_1 = require("util");
11
+ function requireFromString(src, filename) {
12
+ const Module = module.constructor;
13
+ const m = new Module();
14
+ m._compile(src, filename);
15
+ return m.exports;
16
+ }
17
+ /**
18
+ * simple hash a string
19
+ * https://stackoverflow.com/a/34842797/493756
20
+ */
21
+ function hashCode(str) {
22
+ return str.split("").reduce((prevHash, currVal) => (prevHash << 5) - prevHash + currVal.charCodeAt(0), 0);
23
+ }
24
+ let VueEngine = class VueEngine extends Engine_1.Engine {
25
+ constructor() {
26
+ super(...arguments);
27
+ _VueEngine_renderToString.set(this, void 0);
28
+ }
29
+ async $onInit() {
30
+ await super.$onInit();
31
+ await (0, cache_1.importEngine)("vue-pronto/lib/index", "pronto");
32
+ await (0, cache_1.importEngine)("vueify");
33
+ await (0, cache_1.importEngine)("vue-server-renderer");
34
+ const ssrRenderer = this.vueServerRenderer.createRenderer();
35
+ tslib_1.__classPrivateFieldSet(this, _VueEngine_renderToString, (0, util_1.promisify)(ssrRenderer.renderToString.bind(this)), "f");
36
+ }
37
+ get pronto() {
38
+ return (0, cache_1.getCachedEngine)("pronto");
39
+ }
40
+ get vueify() {
41
+ return (0, cache_1.getCachedEngine)("vueify");
42
+ }
43
+ get vueServerRenderer() {
44
+ return (0, cache_1.getCachedEngine)("vue-server-renderer");
45
+ }
46
+ $cacheOptions(template, options, fromFile) {
47
+ const fullPath = (0, path_1.join)(__dirname, `/${hashCode(template)}`);
48
+ if (!fromFile) {
49
+ return {
50
+ ...options,
51
+ filename: fullPath
52
+ };
53
+ }
54
+ return options;
55
+ }
56
+ $compile(template, options) {
57
+ // make up a fake path
58
+ const fullPath = (0, path_1.join)(__dirname, `/${hashCode(template)}`);
59
+ const promise = this.getComponent(fullPath, template, options);
60
+ return async (options) => {
61
+ return this.renderComponent(await promise, options);
62
+ };
63
+ }
64
+ async $compileFile(file, options) {
65
+ // prontoRenderer assume that the filepath is relative to a passed "rootpath"
66
+ // and if you don't pass a rootpath it will try to find one
67
+ // based on its current __dirname
68
+ // https://github.com/express-vue/vue-pronto/blob/c88e380fee8656bc3ed21c7d3adb2ef331be07d5/lib/utils/findPaths.js#L10-L18
69
+ const fullPath = (0, path_1.resolve)(file);
70
+ const rootPath = process.cwd();
71
+ const filepath = fullPath.replace(`${rootPath}/`, "");
72
+ const prontoOptions = {
73
+ rootPath,
74
+ vueVersion: { disabled: true }
75
+ };
76
+ if (!options.cache) {
77
+ // disable pronto lru cache
78
+ prontoOptions.cacheOptions = { max: 0 };
79
+ }
80
+ let prontoRenderer = new this.pronto.ProntoVueify(prontoOptions);
81
+ if (!options.cache) {
82
+ // disable pronto internal cache
83
+ // yup
84
+ prontoRenderer.internalCache = {
85
+ get: () => { },
86
+ set: () => { }
87
+ };
88
+ }
89
+ else {
90
+ // so, this ties each "renderer" to a rootPath
91
+ // so I have to create a new prontoRenderer each time
92
+ // which sucks! because I loose the internal cache of it,
93
+ // unless, I keep tabs on both lru and internal caches and replace them every time.
94
+ const internalCache = prontoRenderer.internalCache;
95
+ prontoRenderer.internalCache = {
96
+ get: internalCache.get.bind(internalCache),
97
+ set(filename, component) {
98
+ internalCache.set(filename, {
99
+ ...component,
100
+ data: component.data || (() => options)
101
+ });
102
+ }
103
+ };
104
+ }
105
+ return (options) => {
106
+ return prontoRenderer.RenderToString(filepath, {}, {
107
+ propsData: options
108
+ });
109
+ };
110
+ }
111
+ async getComponent(fullPath, template, options) {
112
+ // assume that the str the content of a <template> ... </template>
113
+ if (/<template/.test(template.trim())) {
114
+ // assume that the str is a fileContent of a .vue file
115
+ const compile = (0, util_1.promisify)(this.vueify.compiler.compile.bind(this.vueify.compiler));
116
+ const cmp = await compile(template, fullPath);
117
+ return requireFromString(cmp, fullPath);
118
+ }
119
+ return {
120
+ template,
121
+ data() {
122
+ return options;
123
+ }
124
+ };
125
+ }
126
+ async renderComponent(Component, options) {
127
+ let Factory = this.engine.extend(Component);
128
+ let instance = new Factory({ propsData: options });
129
+ return tslib_1.__classPrivateFieldGet(this, _VueEngine_renderToString, "f").call(this, instance);
130
+ }
131
+ };
132
+ _VueEngine_renderToString = new WeakMap();
133
+ VueEngine = tslib_1.__decorate([
134
+ (0, viewEngine_1.ViewEngine)("vue", {
135
+ requires: "vue"
136
+ })
137
+ ], VueEngine);
138
+ exports.VueEngine = VueEngine;
139
+ //# 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"]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalrusEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let WalrusEngine = class WalrusEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ const compile = this.engine.parse(template);
10
+ return (options) => compile.compile(options);
11
+ }
12
+ };
13
+ WalrusEngine = tslib_1.__decorate([
14
+ (0, viewEngine_1.ViewEngine)("walrus")
15
+ ], WalrusEngine);
16
+ exports.WalrusEngine = WalrusEngine;
17
+ //# sourceMappingURL=WalrusEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalrusEngine.js","sourceRoot":"","sources":["../../../src/components/WalrusEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,eAAM;IAC5B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AANY,YAAY;IADxB,IAAA,uBAAU,EAAC,QAAQ,CAAC;GACR,YAAY,CAMxB;AANY,oCAAY","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"walrus\")\nexport class WalrusEngine extends Engine {\n protected $compile(template: string, options: any) {\n const compile = this.engine.parse(template);\n\n return (options: any) => compile.compile(options);\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewEngine = void 0;
4
+ const EnginesContainer_1 = require("../registries/EnginesContainer");
5
+ function ViewEngine(name, options = {}) {
6
+ return (target) => {
7
+ EnginesContainer_1.engines.set(target, { name, useClass: target, options });
8
+ };
9
+ }
10
+ exports.ViewEngine = ViewEngine;
11
+ //# sourceMappingURL=viewEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewEngine.js","sourceRoot":"","sources":["../../../src/decorators/viewEngine.ts"],"names":[],"mappings":";;;AACA,qEAAuD;AAEvD,SAAgB,UAAU,CAAC,IAAY,EAAE,UAA6B,EAAE;IACtE,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,0BAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC;IACzD,CAAC,CAAC;AACJ,CAAC;AAJD,gCAIC","sourcesContent":["import {ViewEngineOptions} from \"../components/Engine\";\nimport {engines} from \"../registries/EnginesContainer\";\n\nexport function ViewEngine(name: string, options: ViewEngineOptions = {}): ClassDecorator {\n return (target: any) => {\n engines.set(target, {name, useClass: target, options});\n };\n}\n"]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * @file Automatically generated by barrelsby.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./components/AtplEngine"), exports);
8
+ tslib_1.__exportStar(require("./components/BracketEngine"), exports);
9
+ tslib_1.__exportStar(require("./components/DotEngine"), exports);
10
+ tslib_1.__exportStar(require("./components/DustEngine"), exports);
11
+ tslib_1.__exportStar(require("./components/EctEngine"), exports);
12
+ tslib_1.__exportStar(require("./components/EjsEngine"), exports);
13
+ tslib_1.__exportStar(require("./components/Engine"), exports);
14
+ tslib_1.__exportStar(require("./components/HamlCoffeeEngine"), exports);
15
+ tslib_1.__exportStar(require("./components/HamlEngine"), exports);
16
+ tslib_1.__exportStar(require("./components/HamletEngine"), exports);
17
+ tslib_1.__exportStar(require("./components/HandlebarsEngine"), exports);
18
+ tslib_1.__exportStar(require("./components/HoganEngine"), exports);
19
+ tslib_1.__exportStar(require("./components/HtmlingEngine"), exports);
20
+ tslib_1.__exportStar(require("./components/JazzEngine"), exports);
21
+ tslib_1.__exportStar(require("./components/JqtplEngine"), exports);
22
+ tslib_1.__exportStar(require("./components/JustEngine"), exports);
23
+ tslib_1.__exportStar(require("./components/LiquorEngine"), exports);
24
+ tslib_1.__exportStar(require("./components/LodashEngine"), exports);
25
+ tslib_1.__exportStar(require("./components/MarkoEngine"), exports);
26
+ tslib_1.__exportStar(require("./components/MoteEngine"), exports);
27
+ tslib_1.__exportStar(require("./components/MustacheEngine"), exports);
28
+ tslib_1.__exportStar(require("./components/NunjucksEngine"), exports);
29
+ tslib_1.__exportStar(require("./components/PlatesEngine"), exports);
30
+ tslib_1.__exportStar(require("./components/PugEngine"), exports);
31
+ tslib_1.__exportStar(require("./components/RactiveEngine"), exports);
32
+ tslib_1.__exportStar(require("./components/ReactEngine"), exports);
33
+ tslib_1.__exportStar(require("./components/SlmEngine"), exports);
34
+ tslib_1.__exportStar(require("./components/SquirrellyEngine"), exports);
35
+ tslib_1.__exportStar(require("./components/SwigEngine"), exports);
36
+ tslib_1.__exportStar(require("./components/TemplayedEngine"), exports);
37
+ tslib_1.__exportStar(require("./components/ToffeeEngine"), exports);
38
+ tslib_1.__exportStar(require("./components/TwigEngine"), exports);
39
+ tslib_1.__exportStar(require("./components/TwingEngine"), exports);
40
+ tslib_1.__exportStar(require("./components/UnderscoreEngine"), exports);
41
+ tslib_1.__exportStar(require("./components/VashEngine"), exports);
42
+ tslib_1.__exportStar(require("./components/VelocityEngine"), exports);
43
+ tslib_1.__exportStar(require("./components/VueEngine"), exports);
44
+ tslib_1.__exportStar(require("./components/WalrusEngine"), exports);
45
+ tslib_1.__exportStar(require("./decorators/viewEngine"), exports);
46
+ tslib_1.__exportStar(require("./registries/EnginesContainer"), exports);
47
+ tslib_1.__exportStar(require("./utils/cache"), exports);
48
+ tslib_1.__exportStar(require("./utils/getEngines"), exports);
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,kEAAwC;AACxC,qEAA2C;AAC3C,iEAAuC;AACvC,kEAAwC;AACxC,iEAAuC;AACvC,iEAAuC;AACvC,8DAAoC;AACpC,wEAA8C;AAC9C,kEAAwC;AACxC,oEAA0C;AAC1C,wEAA8C;AAC9C,mEAAyC;AACzC,qEAA2C;AAC3C,kEAAwC;AACxC,mEAAyC;AACzC,kEAAwC;AACxC,oEAA0C;AAC1C,oEAA0C;AAC1C,mEAAyC;AACzC,kEAAwC;AACxC,sEAA4C;AAC5C,sEAA4C;AAC5C,oEAA0C;AAC1C,iEAAuC;AACvC,qEAA2C;AAC3C,mEAAyC;AACzC,iEAAuC;AACvC,wEAA8C;AAC9C,kEAAwC;AACxC,uEAA6C;AAC7C,oEAA0C;AAC1C,kEAAwC;AACxC,mEAAyC;AACzC,wEAA8C;AAC9C,kEAAwC;AACxC,sEAA4C;AAC5C,iEAAuC;AACvC,oEAA0C;AAC1C,kEAAwC;AACxC,wEAA8C;AAC9C,wDAA8B;AAC9B,6DAAmC","sourcesContent":["/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./components/AtplEngine\";\nexport * from \"./components/BracketEngine\";\nexport * from \"./components/DotEngine\";\nexport * from \"./components/DustEngine\";\nexport * from \"./components/EctEngine\";\nexport * from \"./components/EjsEngine\";\nexport * from \"./components/Engine\";\nexport * from \"./components/HamlCoffeeEngine\";\nexport * from \"./components/HamlEngine\";\nexport * from \"./components/HamletEngine\";\nexport * from \"./components/HandlebarsEngine\";\nexport * from \"./components/HoganEngine\";\nexport * from \"./components/HtmlingEngine\";\nexport * from \"./components/JazzEngine\";\nexport * from \"./components/JqtplEngine\";\nexport * from \"./components/JustEngine\";\nexport * from \"./components/LiquorEngine\";\nexport * from \"./components/LodashEngine\";\nexport * from \"./components/MarkoEngine\";\nexport * from \"./components/MoteEngine\";\nexport * from \"./components/MustacheEngine\";\nexport * from \"./components/NunjucksEngine\";\nexport * from \"./components/PlatesEngine\";\nexport * from \"./components/PugEngine\";\nexport * from \"./components/RactiveEngine\";\nexport * from \"./components/ReactEngine\";\nexport * from \"./components/SlmEngine\";\nexport * from \"./components/SquirrellyEngine\";\nexport * from \"./components/SwigEngine\";\nexport * from \"./components/TemplayedEngine\";\nexport * from \"./components/ToffeeEngine\";\nexport * from \"./components/TwigEngine\";\nexport * from \"./components/TwingEngine\";\nexport * from \"./components/UnderscoreEngine\";\nexport * from \"./components/VashEngine\";\nexport * from \"./components/VelocityEngine\";\nexport * from \"./components/VueEngine\";\nexport * from \"./components/WalrusEngine\";\nexport * from \"./decorators/viewEngine\";\nexport * from \"./registries/EnginesContainer\";\nexport * from \"./utils/cache\";\nexport * from \"./utils/getEngines\";\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var _EnginesContainer_providers;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.engines = exports.EnginesContainer = void 0;
5
+ const tslib_1 = require("tslib");
6
+ class EnginesContainer {
7
+ constructor() {
8
+ _EnginesContainer_providers.set(this, new Map());
9
+ }
10
+ has(key) {
11
+ return tslib_1.__classPrivateFieldGet(this, _EnginesContainer_providers, "f").has(key);
12
+ }
13
+ get(key) {
14
+ const provider = tslib_1.__classPrivateFieldGet(this, _EnginesContainer_providers, "f").get(key);
15
+ if (provider && !provider.instance) {
16
+ provider.instance = new provider.useClass(provider.name, provider.options);
17
+ }
18
+ return provider === null || provider === void 0 ? void 0 : provider.instance;
19
+ }
20
+ set(key, provider) {
21
+ tslib_1.__classPrivateFieldGet(this, _EnginesContainer_providers, "f").set(key, provider);
22
+ tslib_1.__classPrivateFieldGet(this, _EnginesContainer_providers, "f").set(provider.name, provider);
23
+ }
24
+ getSupportedEngines() {
25
+ return [...tslib_1.__classPrivateFieldGet(this, _EnginesContainer_providers, "f").keys()].filter((key) => typeof key === "string");
26
+ }
27
+ }
28
+ exports.EnginesContainer = EnginesContainer;
29
+ _EnginesContainer_providers = new WeakMap();
30
+ exports.engines = new EnginesContainer();
31
+ //# sourceMappingURL=EnginesContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnginesContainer.js","sourceRoot":"","sources":["../../../src/registries/EnginesContainer.ts"],"names":[],"mappings":";;;;;AASA,MAAa,gBAAgB;IAA7B;QACE,sCAA0D,IAAI,GAAG,EAAE,EAAC;IAwBtE,CAAC;IAtBC,GAAG,CAAC,GAA2B;QAC7B,OAAO,+BAAA,IAAI,mCAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,GAA2B;QAC7B,MAAM,QAAQ,GAAG,+BAAA,IAAI,mCAAW,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,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAkB,EAAE,QAAwB;QAC9C,+BAAA,IAAI,mCAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,+BAAA,IAAI,mCAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,GAAG,+BAAA,IAAI,mCAAW,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"]}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readPartials = exports.read = exports.cache = exports.clearCache = exports.getFromCache = exports.setToCache = exports.setEngine = exports.importEngine = exports.getCachedEngine = exports.requires = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
6
+ const path_1 = require("path");
7
+ const readCache = new Map();
8
+ const cacheStore = new Map();
9
+ exports.requires = new Map();
10
+ function getCachedEngine(name, toName = name) {
11
+ const mdl = exports.requires.get(toName) || {};
12
+ return mdl.default || mdl;
13
+ }
14
+ exports.getCachedEngine = getCachedEngine;
15
+ async function importEngine(name, toName = name) {
16
+ if (!exports.requires.has(toName)) {
17
+ await setEngine(name, toName);
18
+ }
19
+ return getCachedEngine(toName);
20
+ }
21
+ exports.importEngine = importEngine;
22
+ async function setEngine(name, toName = name) {
23
+ const mdl = await Promise.resolve().then(() => tslib_1.__importStar(require(name)));
24
+ exports.requires.set(toName, mdl);
25
+ }
26
+ exports.setEngine = setEngine;
27
+ function setToCache(key, value) {
28
+ readCache.set(key, value);
29
+ }
30
+ exports.setToCache = setToCache;
31
+ function getFromCache(key) {
32
+ return readCache.get(key);
33
+ }
34
+ exports.getFromCache = getFromCache;
35
+ /**
36
+ * Clear the cache.
37
+ *
38
+ * @api public
39
+ */
40
+ const clearCache = () => {
41
+ readCache.clear();
42
+ cacheStore.clear();
43
+ };
44
+ exports.clearCache = clearCache;
45
+ /**
46
+ * Conditionally cache `compiled` template based
47
+ * on the `options` filename and `.cache` boolean.
48
+ *
49
+ * @param {Object} options
50
+ * @param {Function} compiled
51
+ * @return {Function}
52
+ */
53
+ function cache(options, compiled) {
54
+ // cachable
55
+ if (compiled && options.filename && options.cache) {
56
+ readCache.delete(options.filename);
57
+ cacheStore.set(options.filename, compiled);
58
+ return compiled;
59
+ }
60
+ // check cache
61
+ if (options.filename && options.cache) {
62
+ return cacheStore.get(options.filename);
63
+ }
64
+ return compiled;
65
+ }
66
+ exports.cache = cache;
67
+ /**
68
+ * Read `path` with `options` with
69
+ * callback `(err, str)`. When `options.cache`
70
+ * is true the template string will be cached.
71
+ *
72
+ * @param path
73
+ * @param {String} options
74
+ */
75
+ async function read(path, options) {
76
+ let str = readCache.get(path);
77
+ // cached (only if cached is a string and not a compiled template function)
78
+ if (options.cache && str && typeof str === "string") {
79
+ return str;
80
+ }
81
+ // read
82
+ str = await fs_extra_1.default.readFile(path, "utf8");
83
+ // remove extraneous utf8 BOM marker
84
+ str = str.replace(/^\uFEFF/, "");
85
+ if (options.cache) {
86
+ readCache.set(path, str);
87
+ }
88
+ return str;
89
+ }
90
+ exports.read = read;
91
+ /**
92
+ * Read `path` with `options` with
93
+ * callback `(err, str)`. When `options.cache`
94
+ * is true the partial string will be cached.
95
+ *
96
+ * @param path
97
+ * @param {String} options
98
+ * @api private
99
+ */
100
+ async function readPartials(path, options) {
101
+ if (!options.partials) {
102
+ return;
103
+ }
104
+ const keys = Object.keys(options.partials);
105
+ const partials = {};
106
+ return new Promise((resolve, reject) => {
107
+ async function next(index) {
108
+ if (index === keys.length) {
109
+ return resolve(partials);
110
+ }
111
+ const key = keys[index];
112
+ const partialPath = options.partials[key];
113
+ if (partialPath === undefined || partialPath === null || partialPath === false) {
114
+ return next(++index);
115
+ }
116
+ let file;
117
+ if ((0, path_1.isAbsolute)(partialPath)) {
118
+ if ((0, path_1.extname)(partialPath) !== "") {
119
+ file = partialPath;
120
+ }
121
+ else {
122
+ file = (0, path_1.join)(partialPath + (0, path_1.extname)(path));
123
+ }
124
+ }
125
+ else {
126
+ file = (0, path_1.join)((0, path_1.dirname)(path), partialPath + (0, path_1.extname)(path));
127
+ }
128
+ try {
129
+ partials[key] = await read(file, options);
130
+ next(++index);
131
+ }
132
+ catch (err) {
133
+ reject(err);
134
+ }
135
+ }
136
+ next(0);
137
+ });
138
+ }
139
+ exports.readPartials = readPartials;
140
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/utils/cache.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs-extra\";\nimport {dirname, extname, isAbsolute, join} from \"path\";\n\nconst readCache: Map<string, string> = new Map();\nconst cacheStore: Map<string, any> = new Map();\n\nexport const requires: Map<string, any> = new Map();\n\nexport function getCachedEngine(name: string, toName: string = name) {\n const mdl = requires.get(toName) || {};\n\n return mdl.default || mdl;\n}\n\nexport async function importEngine(name: string, toName: string = name) {\n if (!requires.has(toName)) {\n await setEngine(name, toName);\n }\n\n return getCachedEngine(toName);\n}\n\nexport async function setEngine(name: string, toName: string = name) {\n const mdl = await import(name);\n requires.set(toName, mdl);\n}\n\nexport function setToCache(key: string, value: any) {\n readCache.set(key, value);\n}\n\nexport function getFromCache(key: string) {\n return readCache.get(key);\n}\n\n/**\n * Clear the cache.\n *\n * @api public\n */\n\nexport const clearCache = () => {\n readCache.clear();\n cacheStore.clear();\n};\n\n/**\n * Conditionally cache `compiled` template based\n * on the `options` filename and `.cache` boolean.\n *\n * @param {Object} options\n * @param {Function} compiled\n * @return {Function}\n */\nexport function cache(options: any, compiled?: any) {\n // cachable\n if (compiled && options.filename && options.cache) {\n readCache.delete(options.filename);\n cacheStore.set(options.filename, compiled);\n return compiled;\n }\n\n // check cache\n if (options.filename && options.cache) {\n return cacheStore.get(options.filename);\n }\n\n return compiled;\n}\n\n/**\n * Read `path` with `options` with\n * callback `(err, str)`. When `options.cache`\n * is true the template string will be cached.\n *\n * @param path\n * @param {String} options\n */\nexport async function read(path: string, options: any): Promise<string> {\n let str = readCache.get(path);\n\n // cached (only if cached is a string and not a compiled template function)\n if (options.cache && str && typeof str === \"string\") {\n return str;\n }\n\n // read\n str = await fs.readFile(path, \"utf8\");\n\n // remove extraneous utf8 BOM marker\n str = str.replace(/^\\uFEFF/, \"\");\n\n if (options.cache) {\n readCache.set(path, str);\n }\n\n return str;\n}\n\n/**\n * Read `path` with `options` with\n * callback `(err, str)`. When `options.cache`\n * is true the partial string will be cached.\n *\n * @param path\n * @param {String} options\n * @api private\n */\nexport async function readPartials(path: string, options: any): Promise<Record<string, string> | void> {\n if (!options.partials) {\n return;\n }\n\n const keys = Object.keys(options.partials);\n const partials: Record<string, string> = {};\n\n return new Promise((resolve, reject) => {\n async function next(index: number): Promise<any> {\n if (index === keys.length) {\n return resolve(partials);\n }\n\n const key = keys[index];\n const partialPath = options.partials[key];\n\n if (partialPath === undefined || partialPath === null || partialPath === false) {\n return next(++index);\n }\n\n let file;\n if (isAbsolute(partialPath)) {\n if (extname(partialPath) !== \"\") {\n file = partialPath;\n } else {\n file = join(partialPath + extname(path));\n }\n } else {\n file = join(dirname(path), partialPath + extname(path));\n }\n\n try {\n partials[key] = await read(file, options);\n next(++index);\n } catch (err) {\n reject(err);\n }\n }\n\n next(0);\n });\n}\n"]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEngines = exports.getEngine = void 0;
4
+ const EnginesContainer_1 = require("../registries/EnginesContainer");
5
+ const callbackify = async (fn, cb) => {
6
+ try {
7
+ const html = await fn();
8
+ cb && cb(null, html);
9
+ return html;
10
+ }
11
+ catch (er) {
12
+ if (cb) {
13
+ cb(er);
14
+ }
15
+ else {
16
+ throw er;
17
+ }
18
+ }
19
+ };
20
+ function getEngine(name) {
21
+ const cb = async (path, options, cb) => {
22
+ const engine = EnginesContainer_1.engines.get(name);
23
+ await engine.$onInit();
24
+ return callbackify(() => engine.renderFile(path, options), cb);
25
+ };
26
+ cb.render = async (template, options, cb) => {
27
+ const engine = EnginesContainer_1.engines.get(name);
28
+ await engine.$onInit();
29
+ return callbackify(() => engine.render(template, options), cb);
30
+ };
31
+ return cb;
32
+ }
33
+ exports.getEngine = getEngine;
34
+ let localEngines;
35
+ function getEngines() {
36
+ localEngines =
37
+ localEngines ||
38
+ EnginesContainer_1.engines.getSupportedEngines().reduce((acc, key) => {
39
+ return {
40
+ ...acc,
41
+ [key]: getEngine(key)
42
+ };
43
+ }, {});
44
+ return localEngines;
45
+ }
46
+ exports.getEngines = getEngines;
47
+ //# sourceMappingURL=getEngines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEngines.js","sourceRoot":"","sources":["../../../src/utils/getEngines.ts"],"names":[],"mappings":";;;AACA,qEAAuD;AAWvD,MAAM,WAAW,GAAG,KAAK,EAAE,EAAO,EAAE,EAAmB,EAAE,EAAE;IACzD,IAAI;QACF,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAC;QACxB,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,EAAE,CAAC,CAAC;SACR;aAAM;YACL,MAAM,EAAE,CAAC;SACV;KACF;AACH,CAAC,CAAC;AAEF,SAAgB,SAAS,CAAC,IAAY;IACpC,MAAM,EAAE,GAAG,KAAK,EAAE,IAAY,EAAE,OAAY,EAAE,EAAmB,EAAE,EAAE;QACnE,MAAM,MAAM,GAAG,0BAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAClC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAEvB,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,EAAE,CAAC,MAAM,GAAG,KAAK,EAAE,QAAgB,EAAE,OAAsB,EAAE,EAAkB,EAAE,EAAE;QACjF,MAAM,MAAM,GAAG,0BAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAClC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAEvB,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,OAAO,EAAS,CAAC;AACnB,CAAC;AAhBD,8BAgBC;AAED,IAAI,YAAiB,CAAC;AAEtB,SAAgB,UAAU;IACxB,YAAY;QACV,YAAY;YACZ,0BAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAChD,OAAO;oBACL,GAAG,GAAG;oBACN,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;iBACtB,CAAC;YACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,OAAO,YAAY,CAAC;AACtB,CAAC;AAXD,gCAWC","sourcesContent":["import {EngineOptions} from \"../components/Engine\";\nimport {engines} from \"../registries/EnginesContainer\";\n\nexport type RenderCallback = (err: Error | null, str?: string | any) => any;\nexport interface EngineFunction {\n (path: string, options: any, cb: RenderCallback): void;\n (path: string, options: any): Promise<string>;\n\n render(template: string, options: any, cb: RenderCallback): void;\n render(template: string, options: any): Promise<string>;\n}\n\nconst callbackify = async (fn: any, cb?: RenderCallback) => {\n try {\n const html = await fn();\n cb && cb(null, html);\n return html;\n } catch (er) {\n if (cb) {\n cb(er);\n } else {\n throw er;\n }\n }\n};\n\nexport function getEngine(name: string): EngineFunction {\n const cb = async (path: string, options: any, cb?: RenderCallback) => {\n const engine = engines.get(name)!;\n await engine.$onInit();\n\n return callbackify(() => engine.renderFile(path, options), cb);\n };\n\n cb.render = async (template: string, options: EngineOptions, cb: RenderCallback) => {\n const engine = engines.get(name)!;\n await engine.$onInit();\n\n return callbackify(() => engine.render(template, options), cb);\n };\n\n return cb as any;\n}\n\nlet localEngines: any;\n\nexport function getEngines(): Record<string, EngineFunction> {\n localEngines =\n localEngines ||\n engines.getSupportedEngines().reduce((acc, key) => {\n return {\n ...acc,\n [key]: getEngine(key)\n };\n }, {});\n\n return localEngines;\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 AtplEngine = class AtplEngine extends Engine {
5
+ };
6
+ AtplEngine = __decorate([
7
+ ViewEngine("atpl")
8
+ ], AtplEngine);
9
+ export { AtplEngine };
10
+ //# sourceMappingURL=AtplEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtplEngine.js","sourceRoot":"","sources":["../../../src/components/AtplEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,MAAM;CAAG,CAAA;AAA5B,UAAU;IADtB,UAAU,CAAC,MAAM,CAAC;GACN,UAAU,CAAkB;SAA5B,UAAU","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"atpl\")\nexport class AtplEngine extends Engine {}\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 BracketEngine = class BracketEngine extends Engine {
5
+ $compile(template, options) {
6
+ return this.engine.compile(template, options);
7
+ }
8
+ };
9
+ BracketEngine = __decorate([
10
+ ViewEngine("bracket", {
11
+ requires: "bracket-template"
12
+ })
13
+ ], BracketEngine);
14
+ export { BracketEngine };
15
+ //# sourceMappingURL=BracketEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BracketEngine.js","sourceRoot":"","sources":["../../../src/components/BracketEngine.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAKhC,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,MAAM;IAC7B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAJY,aAAa;IAHzB,UAAU,CAAC,SAAS,EAAE;QACrB,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;GACW,aAAa,CAIzB;SAJY,aAAa","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"bracket\", {\n requires: \"bracket-template\"\n})\nexport class BracketEngine extends Engine {\n protected $compile(template: string, options: any) {\n return this.engine.compile(template, options);\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import { __decorate } from "tslib";
2
+ import { ViewEngine } from "../decorators/viewEngine.js";
3
+ import { Engine } from "./Engine.js";
4
+ let DotEngine = class DotEngine extends Engine {
5
+ getSettings(options) {
6
+ const settings = Object.assign({}, this.engine.templateSettings);
7
+ return Object.assign(settings, options ? options.dot : {});
8
+ }
9
+ $compile(template, options) {
10
+ return this.engine.template(template, this.getSettings(options), options);
11
+ }
12
+ };
13
+ DotEngine = __decorate([
14
+ ViewEngine("dot")
15
+ ], DotEngine);
16
+ export { DotEngine };
17
+ //# sourceMappingURL=DotEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DotEngine.js","sourceRoot":"","sources":["../../../src/components/DotEngine.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;IACnC,WAAW,CAAC,OAAY;QACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAES,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;CACF,CAAA;AATY,SAAS;IADrB,UAAU,CAAC,KAAK,CAAC;GACL,SAAS,CASrB;SATY,SAAS","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"dot\")\nexport class DotEngine extends Engine {\n getSettings(options: any) {\n const settings = Object.assign({}, this.engine.templateSettings);\n return Object.assign(settings, options ? options.dot : {});\n }\n\n protected $compile(template: string, options: any) {\n return this.engine.template(template, this.getSettings(options), options);\n }\n}\n"]}