@tsed/engines 1.1.3 → 6.112.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +36 -76
  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,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MoteEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let MoteEngine = class MoteEngine extends Engine_1.Engine {
8
+ };
9
+ MoteEngine = tslib_1.__decorate([
10
+ (0, viewEngine_1.ViewEngine)("mote")
11
+ ], MoteEngine);
12
+ exports.MoteEngine = MoteEngine;
13
+ //# sourceMappingURL=MoteEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoteEngine.js","sourceRoot":"","sources":["../../../src/components/MoteEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,eAAM;CAAG,CAAA;AAA5B,UAAU;IADtB,IAAA,uBAAU,EAAC,MAAM,CAAC;GACN,UAAU,CAAkB;AAA5B,gCAAU","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"mote\")\nexport class MoteEngine extends Engine {}\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MustacheEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let MustacheEngine = class MustacheEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ return (options) => this.engine.render(template, options, options.partials);
10
+ }
11
+ };
12
+ MustacheEngine = tslib_1.__decorate([
13
+ (0, viewEngine_1.ViewEngine)("mustache")
14
+ ], MustacheEngine);
15
+ exports.MustacheEngine = MustacheEngine;
16
+ //# sourceMappingURL=MustacheEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MustacheEngine.js","sourceRoot":"","sources":["../../../src/components/MustacheEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,eAAM;IAC9B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnF,CAAC;CACF,CAAA;AAJY,cAAc;IAD1B,IAAA,uBAAU,EAAC,UAAU,CAAC;GACV,cAAc,CAI1B;AAJY,wCAAc","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"mustache\")\nexport class MustacheEngine extends Engine {\n protected $compile(template: string, options: any) {\n return (options: any) => this.engine.render(template, options, options.partials);\n }\n}\n"]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NunjucksEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = require("util");
6
+ const viewEngine_1 = require("../decorators/viewEngine");
7
+ const Engine_1 = require("./Engine");
8
+ let NunjucksEngine = class NunjucksEngine extends Engine_1.Engine {
9
+ configure(options) {
10
+ const engine = options.nunjucksEnv || this.engine;
11
+ let env = engine;
12
+ // deprecated fallback support for express
13
+ // <https://github.com/tj/consolidate.js/pull/152>
14
+ // <https://github.com/tj/consolidate.js/pull/224>
15
+ if (options.settings && options.settings.views) {
16
+ env = engine.configure(options.settings.views);
17
+ }
18
+ else if (options.nunjucks && options.nunjucks.configure) {
19
+ // eslint-disable-next-line prefer-spread
20
+ env = engine.configure.apply(engine, options.nunjucks.configure);
21
+ }
22
+ //
23
+ // because `renderString` does not initiate loaders
24
+ // we must manually create a loader for it based off
25
+ // either `options.settings.views` or `options.nunjucks` or `options.nunjucks.root`
26
+ //
27
+ // <https://github.com/mozilla/nunjucks/issues/730>
28
+ // <https://github.com/crocodilejs/node-email-templates/issues/182>
29
+ //
30
+ // so instead we simply check if we passed a custom loader
31
+ // otherwise we create a simple file based loader
32
+ if (options.loader) {
33
+ return new engine.Environment(options.loader);
34
+ }
35
+ if (options.settings && options.settings.views) {
36
+ return new engine.Environment(new engine.FileSystemLoader(options.settings.views));
37
+ }
38
+ if (options.nunjucks && options.nunjucks.loader) {
39
+ if (typeof options.nunjucks.loader === "string") {
40
+ return new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader));
41
+ }
42
+ return new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader[0], options.nunjucks.loader[1]));
43
+ }
44
+ return env;
45
+ }
46
+ $compile(template, options) {
47
+ let engine = this.configure(options);
48
+ const render = (0, util_1.promisify)(engine.renderString.bind(engine));
49
+ return (options) => render(template, options);
50
+ }
51
+ };
52
+ NunjucksEngine = tslib_1.__decorate([
53
+ (0, viewEngine_1.ViewEngine)("nunjucks")
54
+ ], NunjucksEngine);
55
+ exports.NunjucksEngine = NunjucksEngine;
56
+ //# sourceMappingURL=NunjucksEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NunjucksEngine.js","sourceRoot":"","sources":["../../../src/components/NunjucksEngine.ts"],"names":[],"mappings":";;;;AAAA,+BAA+B;AAC/B,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,eAAM;IAC9B,SAAS,CAAC,OAAY;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAClD,IAAI,GAAG,GAAG,MAAM,CAAC;QAEjB,0CAA0C;QAC1C,kDAAkD;QAClD,kDAAkD;QAClD,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC9C,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAChD;aAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;YACzD,yCAAyC;YACzC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAClE;QAED,EAAE;QACF,mDAAmD;QACnD,oDAAoD;QACpD,mFAAmF;QACnF,EAAE;QACF,mDAAmD;QACnD,mEAAmE;QACnE,EAAE;QAEF,0DAA0D;QAC1D,iDAAiD;QACjD,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/C;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC9C,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;SACpF;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/C,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;gBAC/C,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aACrF;YAED,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpH;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAES,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3D,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AApDY,cAAc;IAD1B,IAAA,uBAAU,EAAC,UAAU,CAAC;GACV,cAAc,CAoD1B;AApDY,wCAAc","sourcesContent":["import {promisify} from \"util\";\nimport {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"nunjucks\")\nexport class NunjucksEngine extends Engine {\n protected configure(options: any) {\n const engine = options.nunjucksEnv || this.engine;\n let env = engine;\n\n // deprecated fallback support for express\n // <https://github.com/tj/consolidate.js/pull/152>\n // <https://github.com/tj/consolidate.js/pull/224>\n if (options.settings && options.settings.views) {\n env = engine.configure(options.settings.views);\n } else if (options.nunjucks && options.nunjucks.configure) {\n // eslint-disable-next-line prefer-spread\n env = engine.configure.apply(engine, options.nunjucks.configure);\n }\n\n //\n // because `renderString` does not initiate loaders\n // we must manually create a loader for it based off\n // either `options.settings.views` or `options.nunjucks` or `options.nunjucks.root`\n //\n // <https://github.com/mozilla/nunjucks/issues/730>\n // <https://github.com/crocodilejs/node-email-templates/issues/182>\n //\n\n // so instead we simply check if we passed a custom loader\n // otherwise we create a simple file based loader\n if (options.loader) {\n return new engine.Environment(options.loader);\n }\n\n if (options.settings && options.settings.views) {\n return new engine.Environment(new engine.FileSystemLoader(options.settings.views));\n }\n\n if (options.nunjucks && options.nunjucks.loader) {\n if (typeof options.nunjucks.loader === \"string\") {\n return new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader));\n }\n\n return new engine.Environment(new engine.FileSystemLoader(options.nunjucks.loader[0], options.nunjucks.loader[1]));\n }\n\n return env;\n }\n\n protected $compile(template: string, options: any) {\n let engine = this.configure(options);\n\n const render = promisify(engine.renderString.bind(engine));\n\n return (options: any) => render(template, options);\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlatesEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let PlatesEngine = class PlatesEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ return (options) => {
10
+ const map = options.map || undefined;
11
+ return this.engine.bind(template, options, map);
12
+ };
13
+ }
14
+ };
15
+ PlatesEngine = tslib_1.__decorate([
16
+ (0, viewEngine_1.ViewEngine)("plates")
17
+ ], PlatesEngine);
18
+ exports.PlatesEngine = PlatesEngine;
19
+ //# sourceMappingURL=PlatesEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatesEngine.js","sourceRoot":"","sources":["../../../src/components/PlatesEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,eAAM;IAC5B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,OAAO,CAAC,OAAY,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC;YACrC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAPY,YAAY;IADxB,IAAA,uBAAU,EAAC,QAAQ,CAAC;GACR,YAAY,CAOxB;AAPY,oCAAY","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"plates\")\nexport class PlatesEngine extends Engine {\n protected $compile(template: string, options: any) {\n return (options: any) => {\n const map = options.map || undefined;\n return this.engine.bind(template, options, map);\n };\n }\n}\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PugEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let PugEngine = class PugEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ return this.engine.compile(template, options);
10
+ }
11
+ async $compileFile(file, options) {
12
+ return this.engine.compileFile(file, options);
13
+ }
14
+ };
15
+ PugEngine = tslib_1.__decorate([
16
+ (0, viewEngine_1.ViewEngine)("pug", {
17
+ requires: ["pug", "then-pug"]
18
+ })
19
+ ], PugEngine);
20
+ exports.PugEngine = PugEngine;
21
+ //# sourceMappingURL=PugEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PugEngine.js","sourceRoot":"","sources":["../../../src/components/PugEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAKhC,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,eAAM;IACzB,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAY;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AARY,SAAS;IAHrB,IAAA,uBAAU,EAAC,KAAK,EAAE;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;KAC9B,CAAC;GACW,SAAS,CAQrB;AARY,8BAAS","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"pug\", {\n requires: [\"pug\", \"then-pug\"]\n})\nexport class PugEngine extends Engine {\n protected $compile(template: string, options: any) {\n return this.engine.compile(template, options);\n }\n\n protected async $compileFile(file: string, options: any) {\n return this.engine.compileFile(file, options);\n }\n}\n"]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RactiveEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let RactiveEngine = class RactiveEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ const Engine = this.engine;
10
+ const compile = this.engine.parse(template);
11
+ return (options) => {
12
+ options.template = compile;
13
+ return new Engine(this.clean(options)).toHTML();
14
+ };
15
+ }
16
+ clean(options) {
17
+ if (options.data === null || options.data === undefined) {
18
+ // Shallow clone the options object
19
+ options.data = Object.assign({}, options);
20
+ // Remove consolidate-specific properties from the clone
21
+ let i;
22
+ let length;
23
+ let properties = ["template", "filename", "cache", "partials"];
24
+ for (i = 0, length = properties.length; i < length; i++) {
25
+ const property = properties[i];
26
+ delete options.data[property];
27
+ }
28
+ }
29
+ return options;
30
+ }
31
+ };
32
+ RactiveEngine = tslib_1.__decorate([
33
+ (0, viewEngine_1.ViewEngine)("ractive")
34
+ ], RactiveEngine);
35
+ exports.RactiveEngine = RactiveEngine;
36
+ //# sourceMappingURL=RactiveEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RactiveEngine.js","sourceRoot":"","sources":["../../../src/components/RactiveEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAA+C;AAG/C,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,eAAM;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,IAAA,uBAAU,EAAC,SAAS,CAAC;GACT,aAAa,CA6BzB;AA7BY,sCAAa","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,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReactEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path_1 = require("path");
6
+ const fs_1 = require("fs");
7
+ const viewEngine_1 = require("../decorators/viewEngine");
8
+ const Engine_1 = require("./Engine");
9
+ const cache_1 = require("../utils/cache");
10
+ let ReactEngine = class ReactEngine extends Engine_1.Engine {
11
+ constructor(name, options) {
12
+ super(name, options);
13
+ this.patchRequire();
14
+ }
15
+ async $onInit() {
16
+ await super.$onInit();
17
+ await (0, cache_1.importEngine)("react-dom/server", "ReactDOM");
18
+ await (0, cache_1.importEngine)("@babel/core", "babel");
19
+ }
20
+ get babel() {
21
+ return (0, cache_1.getCachedEngine)("babel");
22
+ }
23
+ get reactDOM() {
24
+ return (0, cache_1.getCachedEngine)("ReactDOM");
25
+ }
26
+ patchRequire() {
27
+ if (require.extensions) {
28
+ // Ensure JSX is transformed on require
29
+ if (!require.extensions[".jsx"]) {
30
+ require.extensions[".jsx"] = this.requireReact.bind(this);
31
+ }
32
+ // Supporting .react extension as well as test cases
33
+ // Using .react extension is not recommended.
34
+ if (!require.extensions[".react"]) {
35
+ require.extensions[".react"] = this.requireReact.bind(this);
36
+ }
37
+ }
38
+ }
39
+ configure(options) {
40
+ const base = options.base;
41
+ delete options.base;
42
+ const enableCache = options.cache;
43
+ delete options.cache;
44
+ const isNonStatic = options.isNonStatic;
45
+ delete options.isNonStatic;
46
+ return { base, enableCache, isNonStatic };
47
+ }
48
+ $compile(template, options) {
49
+ // Assign HTML Base
50
+ const { base, enableCache, isNonStatic } = this.configure(options);
51
+ // Start Conversion
52
+ const Code = this.requireReactString(template);
53
+ const Factory = this.engine.createFactory(Code);
54
+ return () => {
55
+ const parsed = new Factory(options);
56
+ const content = isNonStatic ? this.reactDOM.renderToString(parsed) : this.reactDOM.renderToStaticMarkup(parsed);
57
+ if (base) {
58
+ options.content = content;
59
+ return this.renderWithBase(template, base, enableCache, options);
60
+ }
61
+ return content;
62
+ };
63
+ }
64
+ async $compileFile(file, options) {
65
+ // Assign HTML Base
66
+ const { base, enableCache, isNonStatic } = this.configure(options);
67
+ let path = (0, path_1.resolve)(file);
68
+ delete require.cache[path];
69
+ const ReactDOM = await (0, cache_1.importEngine)("react-dom/server", "ReactDOM");
70
+ const { default: Code } = await Promise.resolve().then(() => tslib_1.__importStar(require(path)));
71
+ const Factory = this.engine.createFactory(Code);
72
+ return () => {
73
+ const parsed = new Factory(options);
74
+ const content = isNonStatic ? ReactDOM.renderToString(parsed) : ReactDOM.renderToStaticMarkup(parsed);
75
+ if (base) {
76
+ options.content = content;
77
+ return this.renderWithBase(file, base, enableCache, options);
78
+ }
79
+ return content;
80
+ };
81
+ }
82
+ renderWithBase(key, base, enableCache, options) {
83
+ const baseStr = (0, cache_1.getFromCache)(key) || (0, fs_1.readFileSync)((0, path_1.resolve)(base), "utf8");
84
+ if (enableCache) {
85
+ (0, cache_1.setToCache)(key, baseStr);
86
+ }
87
+ return this.reactBaseTmpl(baseStr, options);
88
+ }
89
+ transformFileSync(filename) {
90
+ return this.babel.transformFileSync(filename, { presets: ["@babel/preset-react"] }).code;
91
+ }
92
+ transform(src) {
93
+ return this.babel.transform(src, { presets: ["@babel/preset-react"] }).code;
94
+ }
95
+ requireReact(module, filename) {
96
+ const compiled = this.transformFileSync(filename);
97
+ return module._compile(compiled, filename);
98
+ }
99
+ requireReactString(src, filename) {
100
+ if (!filename)
101
+ filename = "";
102
+ // @ts-ignore
103
+ const m = new module.constructor();
104
+ filename = filename || "";
105
+ // Compile Using React
106
+ const compiled = this.transform(src);
107
+ // Compile as a module
108
+ m.paths = module.paths;
109
+ m._compile(compiled, filename);
110
+ return m.exports;
111
+ }
112
+ reactBaseTmpl(data, options) {
113
+ let exp;
114
+ let regex;
115
+ // Iterates through the keys in file object
116
+ // and interpolate / replace {{key}} with it's value
117
+ for (const k in options) {
118
+ if (options.hasOwnProperty(k)) {
119
+ exp = `{{${k}}}`;
120
+ regex = new RegExp(exp, "g");
121
+ if (data.match(regex)) {
122
+ data = data.replace(regex, options[k]);
123
+ }
124
+ }
125
+ }
126
+ return data;
127
+ }
128
+ };
129
+ ReactEngine = tslib_1.__decorate([
130
+ (0, viewEngine_1.ViewEngine)("react", {
131
+ requires: ["react"]
132
+ }),
133
+ tslib_1.__metadata("design:paramtypes", [String, Object])
134
+ ], ReactEngine);
135
+ exports.ReactEngine = ReactEngine;
136
+ //# sourceMappingURL=ReactEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactEngine.js","sourceRoot":"","sources":["../../../src/components/ReactEngine.ts"],"names":[],"mappings":";;;;AAAA,+BAA6B;AAC7B,2BAAgC;AAChC,yDAAoD;AACpD,qCAAkE;AAClE,0CAAuF;AAKvF,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,eAAM;IACrC,YAAY,IAAY,EAAE,OAA0B;QAClD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,IAAA,oBAAY,EAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,IAAA,oBAAY,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAES,YAAY;QACpB,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,uCAAuC;YACvC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC/B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3D;YAED,oDAAoD;YACpD,6CAA6C;YAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACjC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7D;SACF;IACH,CAAC;IAES,SAAS,CAAC,OAAsB;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,OAAO,OAAO,CAAC,IAAI,CAAC;QAEpB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,OAAO,OAAO,CAAC,KAAK,CAAC;QAErB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,OAAO,OAAO,CAAC,WAAW,CAAC;QAC3B,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAC,CAAC;IAC1C,CAAC;IAES,QAAQ,CAAC,QAAgB,EAAE,OAAsB;QACzD,mBAAmB;QACnB,MAAM,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjE,mBAAmB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAEhH,IAAI,IAAI,EAAE;gBACR,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;gBAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;aAClE;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,OAAsB;QAC/D,mBAAmB;QACnB,MAAM,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,IAAI,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAY,EAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QACpE,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,GAAG,gEAAa,IAAI,GAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAEtG,IAAI,IAAI,EAAE;gBACR,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;gBAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;aAC9D;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;IAES,cAAc,CAAC,GAAW,EAAE,IAAS,EAAE,WAAgC,EAAE,OAAsB;QACvG,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,IAAI,IAAA,iBAAY,EAAC,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAEzE,IAAI,WAAW,EAAE;YACf,IAAA,kBAAU,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC1B;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAES,iBAAiB,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC;IACzF,CAAC;IAES,SAAS,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,CAAC;IAES,YAAY,CAAC,MAAW,EAAE,QAAgB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAES,kBAAkB,CAAC,GAAW,EAAE,QAAiB;QACzD,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,EAAE,CAAC;QAC7B,aAAa;QACb,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACnC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;QAE1B,sBAAsB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAErC,sBAAsB;QACtB,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE/B,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IAES,aAAa,CAAC,IAAS,EAAE,OAAY;QAC7C,IAAI,GAAQ,CAAC;QACb,IAAI,KAAU,CAAC;QAEf,2CAA2C;QAC3C,oDAAoD;QACpD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACvB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBAC7B,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;gBACjB,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxC;aACF;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAvJY,WAAW;IAHvB,IAAA,uBAAU,EAAC,OAAO,EAAE;QACnB,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB,CAAC;;GACW,WAAW,CAuJvB;AAvJY,kCAAW","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,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlmEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let SlmEngine = class SlmEngine extends Engine_1.Engine {
8
+ };
9
+ SlmEngine = tslib_1.__decorate([
10
+ (0, viewEngine_1.ViewEngine)("slm")
11
+ ], SlmEngine);
12
+ exports.SlmEngine = SlmEngine;
13
+ //# sourceMappingURL=SlmEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlmEngine.js","sourceRoot":"","sources":["../../../src/components/SlmEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,eAAM;CAAG,CAAA;AAA3B,SAAS;IADrB,IAAA,uBAAU,EAAC,KAAK,CAAC;GACL,SAAS,CAAkB;AAA3B,8BAAS","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\n\n@ViewEngine(\"slm\")\nexport class SlmEngine extends Engine {}\n"]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SquirrellyEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let SquirrellyEngine = class SquirrellyEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ for (const partial in options.partials) {
10
+ this.engine.definePartial(partial, options.partials[partial]);
11
+ }
12
+ for (const helper in options.helpers) {
13
+ this.engine.defineHelper(helper, options.helpers[helper]);
14
+ }
15
+ const compile = this.engine.Compile(template, options);
16
+ return (options) => compile(options, this.engine);
17
+ }
18
+ };
19
+ SquirrellyEngine = tslib_1.__decorate([
20
+ (0, viewEngine_1.ViewEngine)("squirrelly")
21
+ ], SquirrellyEngine);
22
+ exports.SquirrellyEngine = SquirrellyEngine;
23
+ //# sourceMappingURL=SquirrellyEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SquirrellyEngine.js","sourceRoot":"","sources":["../../../src/components/SquirrellyEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAA+C;AAG/C,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,eAAM;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,IAAA,uBAAU,EAAC,YAAY,CAAC;GACZ,gBAAgB,CAa5B;AAbY,4CAAgB","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,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwigEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let SwigEngine = class SwigEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ if (options.cache === true)
10
+ options.cache = "memory";
11
+ this.engine.setDefaults({ cache: options.cache });
12
+ return this.engine.compile(template, options);
13
+ }
14
+ };
15
+ SwigEngine = tslib_1.__decorate([
16
+ (0, viewEngine_1.ViewEngine)("swig", {
17
+ requires: ["swig", "swig-templates"]
18
+ })
19
+ ], SwigEngine);
20
+ exports.SwigEngine = SwigEngine;
21
+ //# sourceMappingURL=SwigEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwigEngine.js","sourceRoot":"","sources":["../../../src/components/SwigEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAKhC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,eAAM;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,IAAA,uBAAU,EAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACrC,CAAC;GACW,UAAU,CAOtB;AAPY,gCAAU","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,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplayedEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let TemplayedEngine = class TemplayedEngine extends Engine_1.Engine {
8
+ $compile(template, options) {
9
+ return this.engine(template);
10
+ }
11
+ };
12
+ TemplayedEngine = tslib_1.__decorate([
13
+ (0, viewEngine_1.ViewEngine)("templayed")
14
+ ], TemplayedEngine);
15
+ exports.TemplayedEngine = TemplayedEngine;
16
+ //# sourceMappingURL=TemplayedEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplayedEngine.js","sourceRoot":"","sources":["../../../src/components/TemplayedEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,eAAM;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,IAAA,uBAAU,EAAC,WAAW,CAAC;GACX,eAAe,CAI3B;AAJY,0CAAe","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,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToffeeEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = require("util");
6
+ const viewEngine_1 = require("../decorators/viewEngine");
7
+ const Engine_1 = require("./Engine");
8
+ let ToffeeEngine = class ToffeeEngine extends Engine_1.Engine {
9
+ $compile(template, options) {
10
+ const compile = (0, util_1.promisify)(this.engine.str_render.bind(this.engine));
11
+ return (options) => compile(template, options);
12
+ }
13
+ async $compileFile(file, options) {
14
+ const compile = (0, util_1.promisify)(this.engine.__consolidate_engine_render.bind(this.engine));
15
+ return (options) => compile(file, options);
16
+ }
17
+ };
18
+ ToffeeEngine = tslib_1.__decorate([
19
+ (0, viewEngine_1.ViewEngine)("toffee")
20
+ ], ToffeeEngine);
21
+ exports.ToffeeEngine = ToffeeEngine;
22
+ //# sourceMappingURL=ToffeeEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToffeeEngine.js","sourceRoot":"","sources":["../../../src/components/ToffeeEngine.ts"],"names":[],"mappings":";;;;AAAA,+BAA+B;AAC/B,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,eAAM;IAC5B,QAAQ,CAAC,QAAgB,EAAE,OAAY;QAC/C,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,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,IAAA,gBAAS,EAAC,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,IAAA,uBAAU,EAAC,QAAQ,CAAC;GACR,YAAY,CAYxB;AAZY,oCAAY","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,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TwigEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let TwigEngine = class TwigEngine extends Engine_1.Engine {
8
+ $cacheOptions(template, options) {
9
+ return {
10
+ ...options,
11
+ data: template,
12
+ allowInlineIncludes: options.allowInlineIncludes,
13
+ namespaces: options.namespaces,
14
+ path: options.path
15
+ };
16
+ }
17
+ $compile(template, options) {
18
+ const { twig: engine } = this.engine;
19
+ options.data = template;
20
+ const compile = engine(options);
21
+ return (options) => compile.render(options);
22
+ }
23
+ };
24
+ TwigEngine = tslib_1.__decorate([
25
+ (0, viewEngine_1.ViewEngine)("twig")
26
+ ], TwigEngine);
27
+ exports.TwigEngine = TwigEngine;
28
+ //# sourceMappingURL=TwigEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwigEngine.js","sourceRoot":"","sources":["../../../src/components/TwigEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAA+C;AAG/C,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,eAAM;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,IAAA,uBAAU,EAAC,MAAM,CAAC;GACN,UAAU,CAmBtB;AAnBY,gCAAU","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,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TwingEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ const fs_1 = require("fs");
8
+ let TwingEngine = class TwingEngine extends Engine_1.Engine {
9
+ $compile(template, options) {
10
+ const engine = this.engine;
11
+ if (!this.instance) {
12
+ let loader = new engine.TwingLoaderNull();
13
+ if (options.settings && options.settings.views && (0, fs_1.existsSync)(options.settings.views)) {
14
+ loader = new engine.TwingLoaderFilesystem(options.settings.views);
15
+ }
16
+ this.instance = new engine.TwingEnvironment(loader);
17
+ }
18
+ const $cmp = this.instance.createTemplate(template);
19
+ return async (options) => {
20
+ const compile = await $cmp;
21
+ return compile.render(options);
22
+ };
23
+ }
24
+ };
25
+ TwingEngine = tslib_1.__decorate([
26
+ (0, viewEngine_1.ViewEngine)("twing")
27
+ ], TwingEngine);
28
+ exports.TwingEngine = TwingEngine;
29
+ //# sourceMappingURL=TwingEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwingEngine.js","sourceRoot":"","sources":["../../../src/components/TwingEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAChC,2BAA8B;AAG9B,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,eAAM;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,IAAA,eAAU,EAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACpF,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnE;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACrD;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEpD,OAAO,KAAK,EAAE,OAAY,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;YAE3B,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,WAAW;IADvB,IAAA,uBAAU,EAAC,OAAO,CAAC;GACP,WAAW,CAwBvB;AAxBY,kCAAW","sourcesContent":["import {ViewEngine} from \"../decorators/viewEngine\";\nimport {Engine} from \"./Engine\";\nimport {existsSync} from \"fs\";\n\n@ViewEngine(\"twing\")\nexport class TwingEngine extends Engine {\n private instance: any;\n\n protected $compile(template: string, options: any): (options: any) => Promise<string> {\n const engine = this.engine;\n\n if (!this.instance) {\n let loader = new engine.TwingLoaderNull();\n\n if (options.settings && options.settings.views && existsSync(options.settings.views)) {\n loader = new engine.TwingLoaderFilesystem(options.settings.views);\n }\n\n this.instance = new engine.TwingEnvironment(loader);\n }\n\n const $cmp = this.instance.createTemplate(template);\n\n return async (options: any) => {\n const compile = await $cmp;\n\n return compile.render(options);\n };\n }\n}\n"]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnderscoreEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const viewEngine_1 = require("../decorators/viewEngine");
6
+ const Engine_1 = require("./Engine");
7
+ let UnderscoreEngine = class UnderscoreEngine extends Engine_1.Engine {
8
+ async render(template, options) {
9
+ const tpl = await this.compile(template, options)(options);
10
+ return tpl.replace(/\n$/, "");
11
+ }
12
+ $cacheOptions(template, options) {
13
+ const partials = {};
14
+ for (const partial in options.partials) {
15
+ partials[partial] = this.engine.template(options.partials[partial]);
16
+ }
17
+ options.partials = partials;
18
+ return options;
19
+ }
20
+ $compile(template, options) {
21
+ return this.engine.template(template, null, options);
22
+ }
23
+ };
24
+ UnderscoreEngine = tslib_1.__decorate([
25
+ (0, viewEngine_1.ViewEngine)("underscore")
26
+ ], UnderscoreEngine);
27
+ exports.UnderscoreEngine = UnderscoreEngine;
28
+ //# sourceMappingURL=UnderscoreEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnderscoreEngine.js","sourceRoot":"","sources":["../../../src/components/UnderscoreEngine.ts"],"names":[],"mappings":";;;;AAAA,yDAAoD;AACpD,qCAAgC;AAGhC,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,eAAM;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,IAAA,uBAAU,EAAC,YAAY,CAAC;GACZ,gBAAgB,CAqB5B;AArBY,4CAAgB","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,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VashEngine = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = require("util");
6
+ const viewEngine_1 = require("../decorators/viewEngine");
7
+ const Engine_1 = require("./Engine");
8
+ let VashEngine = class VashEngine extends Engine_1.Engine {
9
+ compile(template, options) {
10
+ if (options.helpers) {
11
+ for (const key in options.helpers) {
12
+ if (!options.helpers.hasOwnProperty(key) || typeof options.helpers[key] !== "function") {
13
+ continue;
14
+ }
15
+ this.engine.helpers[key] = options.helpers[key];
16
+ }
17
+ }
18
+ const compile = (0, util_1.promisify)(this.engine.compile(template, options));
19
+ return async (options) => {
20
+ const ctx = await compile(options);
21
+ ctx.finishLayout();
22
+ return ctx.toString();
23
+ };
24
+ }
25
+ async render(template, options) {
26
+ const compile = this.compile(template, options);
27
+ const tpl = await compile(options);
28
+ return tpl.replace(/\n$/, "");
29
+ }
30
+ };
31
+ VashEngine = tslib_1.__decorate([
32
+ (0, viewEngine_1.ViewEngine)("vash")
33
+ ], VashEngine);
34
+ exports.VashEngine = VashEngine;
35
+ //# sourceMappingURL=VashEngine.js.map