node-tao 0.0.2 β†’ 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,6 +17,7 @@
17
17
  - πŸ’» Developer experience
18
18
  - 🧩 Support for local and global helpers
19
19
  - πŸ›‘οΈ Security by design
20
+ - 🟦 [Official VS Code Extension](#vscode)
20
21
 
21
22
  ## Get Started
22
23
 
@@ -155,10 +156,27 @@ const rendered = tao.render('@header', { title: 'Computer shop' });
155
156
  tao.helpersStore.remove('myHelperFn');
156
157
  ```
157
158
 
159
+ ## Providing optionnal data into the template
160
+
161
+ If you wish to provide optional data to the template, prefix your data with `tao`:
162
+
163
+ ```html
164
+ // template.html
165
+ <p><%= tao.error?.firstName %></p>
166
+ ```
167
+
168
+ `tao` is an object containing all the provided data and is always defined. This is particularly useful when providing optional validation error data (data that you don’t always pass into the template).
169
+
158
170
  ## Security by design
159
171
 
160
172
  By default, `TAO` assume you are running your app in production, so no error will be thrown, such that error stack traces are not visible in your browser. Errors will be displayed in your editor console, and visual error representation (see developer experience) is available in your browser by setting `debug: true` at option initialisation.
161
173
 
174
+ <a id="vscode"></a>
175
+
176
+ ## 🟦 Official VS Code Extension
177
+
178
+ [![VS Code Marketplace](https://img.shields.io/visual-studio-marketplace/v/ManuC.tao-vscode-extension?style=for-the-badge&logo=visualstudiocode&label=VS%20Code%20Marketplace)](https://marketplace.visualstudio.com/items?itemName=ManuC.tao-vscode-extension)
179
+
162
180
  ## Developer experience
163
181
 
164
182
  All methods, properties are correctly typed and documented, so you should get help from your editor.
@@ -179,6 +197,60 @@ If you want to inspect the data provided to the template, it is available direct
179
197
 
180
198
  NB: _set `metrics: true` to activate this option. Do not activate this option in production._
181
199
 
200
+ ## Integration with Web Framework
201
+
202
+ Fastify:
203
+
204
+ ```typescript
205
+ import { Tao } from 'node-tao';
206
+ import Fastify from 'fastify';
207
+ const fastify = Fastify();
208
+
209
+ const tao = new Tao({ views: 'src', development: true });
210
+
211
+ declare module 'fastify' {
212
+ interface FastifyReply {
213
+ html(payload: string): FastifyReply;
214
+ }
215
+ }
216
+
217
+ fastify.decorateReply('html', function (payload: string) {
218
+ return this.type('text/html').send(payload);
219
+ });
220
+
221
+ fastify.get('/tao', (request, reply) => {
222
+ const result = tao.render('test', { name: 'Fastify' });
223
+ return reply.html(result);
224
+ });
225
+
226
+ try {
227
+ await fastify.listen({ port: 3000 });
228
+ } catch (err) {
229
+ fastify.log.error(err);
230
+ process.exit(1);
231
+ }
232
+ ```
233
+
234
+ Express:
235
+
236
+ ```typescript
237
+ import express from 'express';
238
+ import { Tao } from 'node-tao';
239
+ export const app = express();
240
+ app.use(express.json());
241
+
242
+ const tao = new Tao({ views: 'src', development: true });
243
+
244
+ app.get('/tao', (req, res) => {
245
+ const result = tao.render('test', { name: 'Express' });
246
+ res.send(result);
247
+ });
248
+
249
+ app.listen(3000, () => {
250
+ console.log('listening on *:3000');
251
+ });
252
+ ```
253
+
182
254
  ## FAQs
183
255
 
184
256
  <details>
@@ -202,7 +274,9 @@ It started as a fork of `eta`, but became a dedicated library because the change
202
274
  - **Clearer template syntax**: No prefix are needed.
203
275
  - **Helpers**: Global and local helpers, which are clearer and more suitable for little template logic.
204
276
  - **Flexible template path resolution**: With `fileResolution` mode set to `flexible`, only end unique paths can be provided, which increases file path readability (aka. `namespaces`).
277
+ - **Vscode extension**: Official vscode extension.
205
278
  - **Performance**: Various performance optimization.
279
+ - **Testing**: Modern and up to date numerous tests.
206
280
 
207
281
  </details>
208
282
 
@@ -227,6 +301,10 @@ _If you think those features are absolutely necessary, please open a new discuss
227
301
 
228
302
  V0.0.2: Fix node modules exclusion in files matching for the error template.
229
303
 
304
+ V0.0.3: Data exchange for the official extension, and various improvements.
305
+
306
+ V0.0.4: Fix NaN or Infinity value provided inside an object into the template.
307
+
230
308
  ## Credits
231
309
 
232
310
  - Syntax and some parts of compilation are based on `eta`.
package/const.d.ts CHANGED
@@ -4,21 +4,18 @@ declare const DEFAULT_CLOSING = "%>";
4
4
  declare const DEFAULT_EXEC = "";
5
5
  declare const DEFAULT_INTERPOLATE = "=";
6
6
  declare const DEFAULT_RAW = "~";
7
- declare const TEMPLATE_VARNAME = "it";
7
+ declare const TEMPLATE_VARNAME = "tao";
8
8
  declare const HELPER_VARNAME = "hp";
9
9
  declare const TP_VARNAME_WITH_PREFIX: string;
10
10
  declare const HELPER_WITH_PREFIX: string;
11
11
  declare const DYNAMICAL_TEMPLATE_PREFIX = "@";
12
12
  declare const PLACEHOLDER_VAR_START = "\"<injected-var-start>\";";
13
13
  declare const PLACEHOLDER_VAR_END = "\"<injected-var-end>\";";
14
- declare const LITERAL_REGEX: RegExp;
15
- declare const SINGLE_QUOTE_REGEX: RegExp;
16
- declare const DOUBLE_QUOTE_REGEX: RegExp;
17
14
  /**
18
15
  * A map of special HTML characters to their XML-escaped equivalents
19
16
  */
20
17
  declare const ESC_MAP: {
21
18
  [key: string]: string;
22
19
  };
23
- export { DEFAULT_EXTENSION, LITERAL_REGEX, SINGLE_QUOTE_REGEX, DOUBLE_QUOTE_REGEX, ESC_MAP, TEMPLATE_VARNAME, DYNAMICAL_TEMPLATE_PREFIX, TP_VARNAME_WITH_PREFIX, HELPER_WITH_PREFIX, HELPER_VARNAME, DEFAULT_CLOSING, DEFAULT_OPENING, DEFAULT_EXEC, DEFAULT_INTERPOLATE, DEFAULT_RAW, PLACEHOLDER_VAR_START, PLACEHOLDER_VAR_END, };
20
+ export { DEFAULT_EXTENSION, ESC_MAP, TEMPLATE_VARNAME, DYNAMICAL_TEMPLATE_PREFIX, TP_VARNAME_WITH_PREFIX, HELPER_WITH_PREFIX, HELPER_VARNAME, DEFAULT_CLOSING, DEFAULT_OPENING, DEFAULT_EXEC, DEFAULT_INTERPOLATE, DEFAULT_RAW, PLACEHOLDER_VAR_START, PLACEHOLDER_VAR_END, };
24
21
  //# sourceMappingURL=const.d.ts.map
package/const.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,SAAS,CAAC;AACjC,QAAA,MAAM,eAAe,OAAO,CAAC;AAC7B,QAAA,MAAM,eAAe,OAAO,CAAC;AAE7B,QAAA,MAAM,YAAY,KAAK,CAAC;AACxB,QAAA,MAAM,mBAAmB,MAAM,CAAC;AAChC,QAAA,MAAM,WAAW,MAAM,CAAC;AAExB,QAAA,MAAM,gBAAgB,OAAO,CAAC;AAC9B,QAAA,MAAM,cAAc,OAAO,CAAC;AAO5B,QAAA,MAAM,sBAAsB,QAAuC,CAAC;AACpE,QAAA,MAAM,kBAAkB,QAAqC,CAAC;AAC9D,QAAA,MAAM,yBAAyB,MAAM,CAAC;AAEtC,QAAA,MAAM,qBAAqB,8BAA4B,CAAC;AACxD,QAAA,MAAM,mBAAmB,4BAA0B,CAAC;AAEpD,QAAA,MAAM,aAAa,QAAuE,CAAC;AAC3F,QAAA,MAAM,kBAAkB,QAAsC,CAAC;AAC/D,QAAA,MAAM,kBAAkB,QAAsC,CAAC;AAE/D;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAMrC,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,mBAAmB,GACpB,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,SAAS,CAAC;AACjC,QAAA,MAAM,eAAe,OAAO,CAAC;AAC7B,QAAA,MAAM,eAAe,OAAO,CAAC;AAE7B,QAAA,MAAM,YAAY,KAAK,CAAC;AACxB,QAAA,MAAM,mBAAmB,MAAM,CAAC;AAChC,QAAA,MAAM,WAAW,MAAM,CAAC;AAExB,QAAA,MAAM,gBAAgB,QAAQ,CAAC;AAC/B,QAAA,MAAM,cAAc,OAAO,CAAC;AAO5B,QAAA,MAAM,sBAAsB,QAAuC,CAAC;AACpE,QAAA,MAAM,kBAAkB,QAAqC,CAAC;AAC9D,QAAA,MAAM,yBAAyB,MAAM,CAAC;AAEtC,QAAA,MAAM,qBAAqB,8BAA4B,CAAC;AACxD,QAAA,MAAM,mBAAmB,4BAA0B,CAAC;AAEpD;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAMrC,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,mBAAmB,GACpB,CAAC"}
package/const.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PLACEHOLDER_VAR_END = exports.PLACEHOLDER_VAR_START = exports.DEFAULT_RAW = exports.DEFAULT_INTERPOLATE = exports.DEFAULT_EXEC = exports.DEFAULT_OPENING = exports.DEFAULT_CLOSING = exports.HELPER_VARNAME = exports.HELPER_WITH_PREFIX = exports.TP_VARNAME_WITH_PREFIX = exports.DYNAMICAL_TEMPLATE_PREFIX = exports.TEMPLATE_VARNAME = exports.ESC_MAP = exports.DOUBLE_QUOTE_REGEX = exports.SINGLE_QUOTE_REGEX = exports.LITERAL_REGEX = exports.DEFAULT_EXTENSION = void 0;
3
+ exports.PLACEHOLDER_VAR_END = exports.PLACEHOLDER_VAR_START = exports.DEFAULT_RAW = exports.DEFAULT_INTERPOLATE = exports.DEFAULT_EXEC = exports.DEFAULT_OPENING = exports.DEFAULT_CLOSING = exports.HELPER_VARNAME = exports.HELPER_WITH_PREFIX = exports.TP_VARNAME_WITH_PREFIX = exports.DYNAMICAL_TEMPLATE_PREFIX = exports.TEMPLATE_VARNAME = exports.ESC_MAP = exports.DEFAULT_EXTENSION = void 0;
4
4
  const DEFAULT_EXTENSION = 'html';
5
5
  exports.DEFAULT_EXTENSION = DEFAULT_EXTENSION;
6
6
  const DEFAULT_OPENING = '<%';
@@ -13,7 +13,7 @@ const DEFAULT_INTERPOLATE = '=';
13
13
  exports.DEFAULT_INTERPOLATE = DEFAULT_INTERPOLATE;
14
14
  const DEFAULT_RAW = '~';
15
15
  exports.DEFAULT_RAW = DEFAULT_RAW;
16
- const TEMPLATE_VARNAME = 'it';
16
+ const TEMPLATE_VARNAME = 'tao';
17
17
  exports.TEMPLATE_VARNAME = TEMPLATE_VARNAME;
18
18
  const HELPER_VARNAME = 'hp';
19
19
  exports.HELPER_VARNAME = HELPER_VARNAME;
@@ -31,12 +31,6 @@ const PLACEHOLDER_VAR_START = '"<injected-var-start>";';
31
31
  exports.PLACEHOLDER_VAR_START = PLACEHOLDER_VAR_START;
32
32
  const PLACEHOLDER_VAR_END = '"<injected-var-end>";';
33
33
  exports.PLACEHOLDER_VAR_END = PLACEHOLDER_VAR_END;
34
- const LITERAL_REGEX = /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g;
35
- exports.LITERAL_REGEX = LITERAL_REGEX;
36
- const SINGLE_QUOTE_REGEX = /'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g;
37
- exports.SINGLE_QUOTE_REGEX = SINGLE_QUOTE_REGEX;
38
- const DOUBLE_QUOTE_REGEX = /"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;
39
- exports.DOUBLE_QUOTE_REGEX = DOUBLE_QUOTE_REGEX;
40
34
  /**
41
35
  * A map of special HTML characters to their XML-escaped equivalents
42
36
  */
package/const.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAuC/B,8CAAiB;AAtCnB,MAAM,eAAe,GAAG,IAAI,CAAC;AAiD3B,0CAAe;AAhDjB,MAAM,eAAe,GAAG,IAAI,CAAC;AA+C3B,0CAAe;AA7CjB,MAAM,YAAY,GAAG,EAAE,CAAC;AA+CtB,oCAAY;AA9Cd,MAAM,mBAAmB,GAAG,GAAG,CAAC;AA+C9B,kDAAmB;AA9CrB,MAAM,WAAW,GAAG,GAAG,CAAC;AA+CtB,kCAAW;AA7Cb,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAoC5B,4CAAgB;AAnClB,MAAM,cAAc,GAAG,IAAI,CAAC;AAuC1B,wCAAc;AArChB;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,sBAAsB,GAAG,GAAG,YAAY,GAAG,gBAAgB,EAAE,CAAC;AA8BlE,wDAAsB;AA7BxB,MAAM,kBAAkB,GAAG,GAAG,YAAY,GAAG,cAAc,EAAE,CAAC;AA8B5D,gDAAkB;AA7BpB,MAAM,yBAAyB,GAAG,GAAG,CAAC;AA2BpC,8DAAyB;AAzB3B,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAkCtD,sDAAqB;AAjCvB,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAkClD,kDAAmB;AAhCrB,MAAM,aAAa,GAAG,oEAAoE,CAAC;AAiBzF,sCAAa;AAhBf,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAiB7D,gDAAkB;AAhBpB,MAAM,kBAAkB,GAAG,mCAAmC,CAAC;AAiB7D,gDAAkB;AAfpB;;GAEG;AACH,MAAM,OAAO,GAA8B;IACzC,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;CACb,CAAC;AAOA,0BAAO"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAmC/B,8CAAiB;AAlCnB,MAAM,eAAe,GAAG,IAAI,CAAC;AA0C3B,0CAAe;AAzCjB,MAAM,eAAe,GAAG,IAAI,CAAC;AAwC3B,0CAAe;AAtCjB,MAAM,YAAY,GAAG,EAAE,CAAC;AAwCtB,oCAAY;AAvCd,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAwC9B,kDAAmB;AAvCrB,MAAM,WAAW,GAAG,GAAG,CAAC;AAwCtB,kCAAW;AAtCb,MAAM,gBAAgB,GAAG,KAAK,CAAC;AA6B7B,4CAAgB;AA5BlB,MAAM,cAAc,GAAG,IAAI,CAAC;AAgC1B,wCAAc;AA9BhB;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,sBAAsB,GAAG,GAAG,YAAY,GAAG,gBAAgB,EAAE,CAAC;AAuBlE,wDAAsB;AAtBxB,MAAM,kBAAkB,GAAG,GAAG,YAAY,GAAG,cAAc,EAAE,CAAC;AAuB5D,gDAAkB;AAtBpB,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAoBpC,8DAAyB;AAlB3B,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AA2BtD,sDAAqB;AA1BvB,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AA2BlD,kDAAmB;AAzBrB;;GAEG;AACH,MAAM,OAAO,GAA8B;IACzC,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;CACb,CAAC;AAIA,0BAAO"}
package/interfaces.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Store } from './store';
1
2
  export type ErrorType = 'Parse Error' | 'ReadFile Error' | 'Compilation Error' | 'Execution Error' | 'Inclusion Error' | 'Precompilation Error' | 'Template Type Error' | 'Not Found Error';
2
3
  export interface DebugData {
3
4
  compiledAnonymousFnContent: string;
@@ -167,4 +168,26 @@ export interface DefinitiveOptions {
167
168
  extension: string;
168
169
  fileResolution: FileResolution;
169
170
  }
171
+ export interface VariableData {
172
+ name: string;
173
+ type: string;
174
+ }
175
+ export interface HelperData {
176
+ name: string;
177
+ params: string;
178
+ }
179
+ export interface UserData {
180
+ template: string;
181
+ variables: VariableData[];
182
+ helpers: HelperData[];
183
+ lastUpdate: string;
184
+ }
185
+ export interface InjectedData {
186
+ development: boolean;
187
+ templatePaths: string[];
188
+ fullPath: string;
189
+ data: Data;
190
+ helpers: Helpers;
191
+ helpersStore: Store<HelperFunction>;
192
+ }
170
193
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-tao",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "Lightweight, fast, and powerful embedded JS template engine",
5
5
  "keywords": [
6
6
  "template engine",
@@ -25,7 +25,7 @@
25
25
  "test": "jest",
26
26
  "build": "rimraf dist && tsc && cpx src/public/**/* dist/public && cpx \"src/templates/**/*\" dist/templates && cpx src/error/**/* dist/error",
27
27
  "build-for-publish": "rimraf dist && tsc && cpx src/error/error.html dist/error && cpx package.json dist/ && cpx README.md dist/",
28
- "startNodemon": "nodemon --ext ts,js,json,css,html --watch src --exec \"tsc && cpx src/templates/**/* dist/templates && cpx src/error/**/* dist/error && node dist/server.js\""
28
+ "start": "nodemon --ext ts,js,json,css,html --watch src --exec \"tsc && cpx src/templates/**/* dist/templates && cpx src/error/**/* dist/error && node dist/server.js\""
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/jest": "29.4.0",
@@ -1 +1 @@
1
- {"version":3,"file":"parsing-helpers.d.ts","sourceRoot":"","sources":["../src/parsing-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,iBAAS,sBAAsB,CAC7B,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,MAAM,QAYpB;AAED;;GAEG;AACH,iBAAS,YAAY,CACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,UAgBpB;AAuED,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"parsing-helpers.d.ts","sourceRoot":"","sources":["../src/parsing-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,iBAAS,sBAAsB,CAC7B,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,MAAM,QAYpB;AAED;;GAEG;AACH,iBAAS,YAAY,CACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,UAgBpB;AA0ED,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkForUnclosedPrefix = exports.handleQuotes = void 0;
4
- const const_1 = require("./const");
5
4
  const error_utils_1 = require("./error-utils");
6
5
  function checkForUnclosedPrefix(templateData, expression, originalOpen, openingResultIndex, fileContent) {
7
6
  if (templateData)
@@ -31,30 +30,33 @@ function handleQuotes(expression, original, closeResultIndex, fileContent) {
31
30
  }
32
31
  exports.handleQuotes = handleQuotes;
33
32
  function handleSingleQuote(expression, original, closeResultIndex, fileContent) {
34
- const_1.SINGLE_QUOTE_REGEX.lastIndex = closeResultIndex;
35
- const singleQuoteMatch = const_1.SINGLE_QUOTE_REGEX.exec(expression);
33
+ const SINGLE_QUOTE_REGEX = /'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g;
34
+ SINGLE_QUOTE_REGEX.lastIndex = closeResultIndex;
35
+ const singleQuoteMatch = SINGLE_QUOTE_REGEX.exec(expression);
36
36
  if (!singleQuoteMatch) {
37
37
  const error = (0, error_utils_1.getParsingErrorData)(expression, closeResultIndex, `Unclosed string " ${original} "`, fileContent);
38
38
  throw error;
39
39
  }
40
- return const_1.SINGLE_QUOTE_REGEX.lastIndex;
40
+ return SINGLE_QUOTE_REGEX.lastIndex;
41
41
  }
42
42
  function handleDoubleQuote(expression, original, closeResultIndex, fileContent) {
43
- const_1.DOUBLE_QUOTE_REGEX.lastIndex = closeResultIndex;
44
- const doubleQuoteMatch = const_1.DOUBLE_QUOTE_REGEX.exec(expression);
43
+ const DOUBLE_QUOTE_REGEX = /"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;
44
+ DOUBLE_QUOTE_REGEX.lastIndex = closeResultIndex;
45
+ const doubleQuoteMatch = DOUBLE_QUOTE_REGEX.exec(expression);
45
46
  if (!doubleQuoteMatch) {
46
47
  const error = (0, error_utils_1.getParsingErrorData)(expression, closeResultIndex, `Unclosed string " ${original} "`, fileContent);
47
48
  throw error;
48
49
  }
49
- return const_1.DOUBLE_QUOTE_REGEX.lastIndex;
50
+ return DOUBLE_QUOTE_REGEX.lastIndex;
50
51
  }
51
52
  function handleLiteralQuote(expression, original, closeResultIndex, fileContent) {
52
- const_1.LITERAL_REGEX.lastIndex = closeResultIndex;
53
- const templateLitMatch = const_1.LITERAL_REGEX.exec(expression);
53
+ const LITERAL_REGEX = /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g;
54
+ LITERAL_REGEX.lastIndex = closeResultIndex;
55
+ const templateLitMatch = LITERAL_REGEX.exec(expression);
54
56
  if (!templateLitMatch) {
55
57
  const error = (0, error_utils_1.getParsingErrorData)(expression, closeResultIndex, `Unclosed string " ${original} "`, fileContent);
56
58
  throw error;
57
59
  }
58
- return const_1.LITERAL_REGEX.lastIndex;
60
+ return LITERAL_REGEX.lastIndex;
59
61
  }
60
62
  //# sourceMappingURL=parsing-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsing-helpers.js","sourceRoot":"","sources":["../src/parsing-helpers.ts"],"names":[],"mappings":";;;AAAA,mCAAgF;AAChF,+CAAoD;AAGpD,SAAS,sBAAsB,CAC7B,YAAsC,EACtC,UAAkB,EAClB,YAAoB,EACpB,kBAA0B,EAC1B,WAAmB;IAEnB,IAAI,YAAY;QAAE,OAAO;IAEzB,MAAM,KAAK,GAAG,IAAA,iCAAmB,EAC/B,UAAU,EACV,kBAAkB,EAClB,qBAAqB,YAAY,IAAI,EACrC,WAAW,CACZ,CAAC;IAEF,MAAM,KAAK,CAAC;AACd,CAAC;AAgGsB,wDAAsB;AA9F7C;;GAEG;AACH,SAAS,YAAY,CACnB,UAAkB,EAClB,QAAgB,EAChB,gBAAwB,EACxB,WAAmB;IAEnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,YAAY,GAAG,GAAG,CAAC;IACzB,MAAM,YAAY,GAAG,GAAG,CAAC;IACzB,MAAM,aAAa,GAAG,GAAG,CAAC;IAE1B,IAAI,QAAQ,KAAK,YAAY,EAAE;QAC7B,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;KACpF;SAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;QACpC,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;KACpF;SAAM,IAAI,QAAQ,KAAK,aAAa,EAAE;QACrC,SAAS,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;KACrF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAuEQ,oCAAY;AArErB,SAAS,iBAAiB,CACxB,UAAkB,EAClB,QAAgB,EAChB,gBAAwB,EACxB,WAAmB;IAEnB,0BAAkB,CAAC,SAAS,GAAG,gBAAgB,CAAC;IAEhD,MAAM,gBAAgB,GAAG,0BAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,KAAK,GAAG,IAAA,iCAAmB,EAC/B,UAAU,EACV,gBAAgB,EAChB,qBAAqB,QAAQ,IAAI,EACjC,WAAW,CACZ,CAAC;QAEF,MAAM,KAAK,CAAC;KACb;IAED,OAAO,0BAAkB,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,QAAgB,EAChB,gBAAwB,EACxB,WAAmB;IAEnB,0BAAkB,CAAC,SAAS,GAAG,gBAAgB,CAAC;IAChD,MAAM,gBAAgB,GAAG,0BAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7D,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,KAAK,GAAG,IAAA,iCAAmB,EAC/B,UAAU,EACV,gBAAgB,EAChB,qBAAqB,QAAQ,IAAI,EACjC,WAAW,CACZ,CAAC;QAEF,MAAM,KAAK,CAAC;KACb;IAED,OAAO,0BAAkB,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAkB,EAClB,QAAgB,EAChB,gBAAwB,EACxB,WAAmB;IAEnB,qBAAa,CAAC,SAAS,GAAG,gBAAgB,CAAC;IAC3C,MAAM,gBAAgB,GAAG,qBAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAExD,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,KAAK,GAAG,IAAA,iCAAmB,EAC/B,UAAU,EACV,gBAAgB,EAChB,qBAAqB,QAAQ,IAAI,EACjC,WAAW,CACZ,CAAC;QAEF,MAAM,KAAK,CAAC;KACb;IAED,OAAO,qBAAa,CAAC,SAAS,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"parsing-helpers.js","sourceRoot":"","sources":["../src/parsing-helpers.ts"],"names":[],"mappings":"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"}
package/tao.d.ts CHANGED
@@ -9,7 +9,7 @@ export declare class Tao {
9
9
  */
10
10
  compiledStore: Store<string>;
11
11
  /**
12
- * Stores dynamically defined templates.
12
+ * Stores dynamically loaded templates.
13
13
  */
14
14
  dynamictemplatesStore: Store<string>;
15
15
  /**
@@ -31,7 +31,7 @@ export declare class Tao {
31
31
  /**
32
32
  * Render a template with data and helpers.
33
33
  * @param template The path of your template to render.
34
- * @param data The data to inject.
34
+ * @param data The variables to inject.
35
35
  * @param helpers The helpers functions to inject.
36
36
  */
37
37
  render(template: string, data?: Data, helpers?: Helpers): string;
package/tao.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tao.d.ts","sourceRoot":"","sources":["../src/tao.ts"],"names":[],"mappings":"AA2BA,OAAO,EAGL,IAAI,EACJ,OAAO,EACP,cAAc,EAId,OAAO,EASR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAM;IAEzB;;OAEG;IACI,aAAa,gBAAuB;IAC3C;;OAEG;IACI,qBAAqB,gBAAuB;IACnD;;OAEG;IACI,YAAY,wBAA+B;IAGlD,OAAO,CAAC,cAAc,CAAM;IAE5B,OAAO,CAAC,aAAa,CAAyB;gBAElC,YAAY,GAAE,OAAY;IAMtC,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,IAAI,WAAW,aAEd;IAED,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,OAAO;IA4Bf,OAAO,CAAC,KAAK;IAmEb;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,IAAS,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM;IAgGxE;;OAEG;IACH,OAAO,CAAC,WAAW;IAiFnB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,wBAAwB;IAuBhC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,yBAAyB;IAkBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,0BAA0B;IAgBlC;;;OAGG;IACH,aAAa,CAAC,OAAO,GAAE,OAAY;IAanC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAc5C"}
1
+ {"version":3,"file":"tao.d.ts","sourceRoot":"","sources":["../src/tao.ts"],"names":[],"mappings":"AA4BA,OAAO,EAGL,IAAI,EACJ,OAAO,EACP,cAAc,EAId,OAAO,EAUR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC,qBAAa,GAAG;IACd,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,WAAW,CAAM;IAEzB;;OAEG;IACI,aAAa,gBAAuB;IAC3C;;OAEG;IACI,qBAAqB,gBAAuB;IACnD;;OAEG;IACI,YAAY,wBAA+B;IAGlD,OAAO,CAAC,cAAc,CAAM;IAE5B,OAAO,CAAC,aAAa,CAAyB;gBAElC,YAAY,GAAE,OAAY;IAMtC,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,IAAI,WAAW,aAEd;IAED,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,OAAO;IA4Bf,OAAO,CAAC,KAAK;IAoEb;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,IAAS,EAAE,OAAO,GAAE,OAAY,GAAG,MAAM;IA0GxE;;OAEG;IACH,OAAO,CAAC,WAAW;IA0FnB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,6BAA6B;IAuBrC,OAAO,CAAC,wBAAwB;IAuBhC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,yBAAyB;IAkBjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,0BAA0B;IAgBlC;;;OAGG;IACH,aAAa,CAAC,OAAO,GAAE,OAAY;IAanC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAc5C"}
package/tao.js CHANGED
@@ -26,7 +26,7 @@ class Tao {
26
26
  */
27
27
  this.compiledStore = new store_1.Store();
28
28
  /**
29
- * Stores dynamically defined templates.
29
+ * Stores dynamically loaded templates.
30
30
  */
31
31
  this.dynamictemplatesStore = new store_1.Store();
32
32
  /**
@@ -130,8 +130,9 @@ class Tao {
130
130
  const content = expression.slice(lastIndex, closeResult.index);
131
131
  lastIndex = parseCloseReg.lastIndex;
132
132
  parseOpenReg.lastIndex = lastIndex;
133
+ const contentLiteralEscaped = (0, utils_1.replaceCarriageReturn)(content);
133
134
  const currentType = (0, utils_1.getCurrentPrefixType)(openingPrefix, parse);
134
- templateData = { type: currentType, content };
135
+ templateData = { type: currentType, content: contentLiteralEscaped };
135
136
  compiledData.push(templateData);
136
137
  break;
137
138
  }
@@ -147,7 +148,7 @@ class Tao {
147
148
  /**
148
149
  * Render a template with data and helpers.
149
150
  * @param template The path of your template to render.
150
- * @param data The data to inject.
151
+ * @param data The variables to inject.
151
152
  * @param helpers The helpers functions to inject.
152
153
  */
153
154
  render(template, data = {}, helpers = {}) {
@@ -157,15 +158,25 @@ class Tao {
157
158
  const { errorHTML } = this.manageError(error, template, debugData);
158
159
  return errorHTML;
159
160
  }
160
- let filename = (0, utils_1.normalizeFilesPath)(template);
161
- const { views, extension, fileResolution } = this.config;
161
+ const { views, extension, fileResolution, development } = this.config;
162
162
  const Ι΅Ι΅start = node_perf_hooks_1.performance.now();
163
163
  let Ι΅Ι΅cacheHit = false;
164
- const pathWithExtension = (0, checks_1.getPathWithExtension)(filename, extension);
165
- this.parentTemplate = (0, utils_1.getFileName)(pathWithExtension);
164
+ const pathWithExtension = (0, checks_1.getPathWithExtension)(template, extension);
165
+ const filename = (0, utils_1.getFileName)(pathWithExtension);
166
+ const fullPath = (0, utils_1.getResolvedPath)(views, pathWithExtension, fileResolution);
167
+ this.parentTemplate = filename;
166
168
  this.childrenStore.remove(this.parentTemplate);
167
- if ((0, checks_1.isTemplateDynamicallyDefined)(filename)) {
168
- const cachedTemplate = this.compiledStore.get(filename);
169
+ const injectedData = {
170
+ development,
171
+ fullPath,
172
+ data,
173
+ helpers,
174
+ helpersStore: this.helpersStore,
175
+ templatePaths: this.templatePaths,
176
+ };
177
+ (0, utils_1.injectUserDataForVSCodeExtension)(injectedData);
178
+ if ((0, checks_1.isTemplateDynamicallyDefined)(template)) {
179
+ const cachedTemplate = this.compiledStore.get(template);
169
180
  if (cachedTemplate) {
170
181
  Ι΅Ι΅cacheHit = true;
171
182
  const executeData = {
@@ -173,15 +184,15 @@ class Tao {
173
184
  data,
174
185
  helpers,
175
186
  Ι΅Ι΅start,
176
- filename,
187
+ filename: template,
177
188
  Ι΅Ι΅cacheHit,
178
189
  };
179
190
  return this.executeFunction(executeData, debugData);
180
191
  }
181
- const templateLoaded = this.dynamictemplatesStore.get(filename);
192
+ const templateLoaded = this.dynamictemplatesStore.get(template);
182
193
  if (!templateLoaded) {
183
- const error = (0, error_utils_1.handleNotFoundDynamicTemplate)(filename);
184
- const { errorHTML } = this.manageError(error, filename, debugData);
194
+ const error = (0, error_utils_1.handleNotFoundDynamicTemplate)(template);
195
+ const { errorHTML } = this.manageError(error, template, debugData);
185
196
  return errorHTML;
186
197
  }
187
198
  const templateData = {
@@ -189,7 +200,7 @@ class Tao {
189
200
  data,
190
201
  helpers,
191
202
  Ι΅Ι΅start,
192
- filename,
203
+ filename: template,
193
204
  Ι΅Ι΅cacheHit,
194
205
  };
195
206
  return this.handleLoadedTemplate(templateData, debugData);
@@ -199,8 +210,6 @@ class Tao {
199
210
  const { errorHTML } = this.manageError(error, filename, debugData);
200
211
  return errorHTML;
201
212
  }
202
- const fullPath = (0, utils_1.getFullPath)(views, pathWithExtension, fileResolution);
203
- filename = (0, utils_1.getFileName)(fullPath);
204
213
  const files = (0, templates_access_1.checkAccessPermission)(this.templatePaths, fullPath);
205
214
  if (!(0, templates_access_1.fileIsUnique)(files)) {
206
215
  const error = (0, error_utils_1.handleNonUniqueFile)(files, filename);
@@ -220,6 +229,7 @@ class Tao {
220
229
  };
221
230
  return this.executeFunction(executeData, debugData);
222
231
  }
232
+ // mapped fullPath template file
223
233
  const file = files[0];
224
234
  const compileData = {
225
235
  filename,
@@ -241,11 +251,20 @@ class Tao {
241
251
  const errorData = this.handleChildError(error, template, debugData);
242
252
  return errorData;
243
253
  }
244
- template = (0, utils_1.normalizeFilesPath)(template);
245
- const { views, extension, fileResolution } = this.config;
246
- let filename = template;
254
+ const { views, extension, fileResolution, development } = this.config;
247
255
  const pathWithExtension = (0, checks_1.getPathWithExtension)(template, extension);
256
+ const filename = (0, utils_1.getFileName)(pathWithExtension);
257
+ const fullPath = (0, utils_1.getResolvedPath)(views, pathWithExtension, fileResolution);
248
258
  (0, metrics_1.updateChildrenStore)(this.childrenStore, filename, this.parentTemplate, this.config.development);
259
+ const injectedData = {
260
+ development,
261
+ fullPath,
262
+ data,
263
+ helpers,
264
+ helpersStore: this.helpersStore,
265
+ templatePaths: this.templatePaths,
266
+ };
267
+ (0, utils_1.injectUserDataForVSCodeExtension)(injectedData);
249
268
  if ((0, checks_1.isTemplateDynamicallyDefined)(template)) {
250
269
  const cachedTemplate = this.compiledStore.get(template);
251
270
  if (cachedTemplate) {
@@ -253,7 +272,7 @@ class Tao {
253
272
  compiledContent: cachedTemplate,
254
273
  data,
255
274
  helpers,
256
- filename,
275
+ filename: template,
257
276
  };
258
277
  return this.executeChildFunction(executeData, debugData);
259
278
  }
@@ -267,12 +286,10 @@ class Tao {
267
286
  templateLoaded,
268
287
  data,
269
288
  helpers,
270
- filename,
289
+ filename: template,
271
290
  };
272
291
  return this.handleLoadedChildTemplate(templateData, debugData);
273
292
  }
274
- const fullPath = (0, utils_1.getFullPath)(views, pathWithExtension, fileResolution);
275
- filename = (0, utils_1.getFileName)(fullPath);
276
293
  const files = (0, templates_access_1.checkAccessPermission)(this.templatePaths, fullPath);
277
294
  if (!(0, templates_access_1.fileIsUnique)(files)) {
278
295
  const error = (0, error_utils_1.handleNonUniqueFile)(files, filename);
package/tao.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tao.js","sourceRoot":"","sources":["../src/tao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tao.js","sourceRoot":"","sources":["../src/tao.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ import { normalizeFilesPath } from './utils';
5
5
  * Normalize paths on Windows.
6
6
  */
7
7
  declare function getFilesFromDirectory(directory: string, extension: string): string[];
8
+ declare function findTemplateInMappedTemplates(templatePaths: string[], templateFile: string): string[];
8
9
  /**
9
- * Security measure to allow access to only files in given directory that has been previously mapped.
10
+ * Security measure to restrict access only to files within a previously mapped directory.
10
11
  */
11
- declare function isTemplateFileInsideGivenDirectory(templatePaths: string[], templateFile: string): string[];
12
12
  declare function checkAccessPermission(templatePaths: string[], templateFile: string): string[];
13
13
  declare function fileIsUnique(files: string[]): boolean;
14
- export { getFilesFromDirectory, checkAccessPermission, isTemplateFileInsideGivenDirectory, normalizeFilesPath, fileIsUnique, };
14
+ export { getFilesFromDirectory, checkAccessPermission, normalizeFilesPath, fileIsUnique, findTemplateInMappedTemplates, };
15
15
  //# sourceMappingURL=templates-access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates-access.d.ts","sourceRoot":"","sources":["../src/templates-access.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;GAIG;AACH,iBAAS,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAQlE;AAED;;GAEG;AACH,iBAAS,kCAAkC,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,YAExF;AAED,iBAAS,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,YAI3E;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAEpC;AAED,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,kBAAkB,EAClB,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"templates-access.d.ts","sourceRoot":"","sources":["../src/templates-access.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;GAIG;AACH,iBAAS,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAQlE;AAED,iBAAS,6BAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,YAEnF;AAED;;GAEG;AACH,iBAAS,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,YAI3E;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAEpC;AAED,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,6BAA6B,GAC9B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fileIsUnique = exports.normalizeFilesPath = exports.isTemplateFileInsideGivenDirectory = exports.checkAccessPermission = exports.getFilesFromDirectory = void 0;
3
+ exports.findTemplateInMappedTemplates = exports.fileIsUnique = exports.normalizeFilesPath = exports.checkAccessPermission = exports.getFilesFromDirectory = void 0;
4
4
  const glob_1 = require("glob");
5
5
  const utils_1 = require("./utils");
6
6
  Object.defineProperty(exports, "normalizeFilesPath", { enumerable: true, get: function () { return utils_1.normalizeFilesPath; } });
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "normalizeFilesPath", { enumerable: true, get: fu
10
10
  * Normalize paths on Windows.
11
11
  */
12
12
  function getFilesFromDirectory(directory, extension) {
13
- const files = (0, glob_1.globSync)(`${directory}/**/*${extension}`, {
13
+ const files = (0, glob_1.globSync)(`${directory}/**/*.${extension}`, {
14
14
  absolute: true,
15
15
  nodir: true,
16
16
  });
@@ -18,15 +18,15 @@ function getFilesFromDirectory(directory, extension) {
18
18
  return normalizedPaths;
19
19
  }
20
20
  exports.getFilesFromDirectory = getFilesFromDirectory;
21
- /**
22
- * Security measure to allow access to only files in given directory that has been previously mapped.
23
- */
24
- function isTemplateFileInsideGivenDirectory(templatePaths, templateFile) {
21
+ function findTemplateInMappedTemplates(templatePaths, templateFile) {
25
22
  return templatePaths.filter((path) => path.endsWith(templateFile));
26
23
  }
27
- exports.isTemplateFileInsideGivenDirectory = isTemplateFileInsideGivenDirectory;
24
+ exports.findTemplateInMappedTemplates = findTemplateInMappedTemplates;
25
+ /**
26
+ * Security measure to restrict access only to files within a previously mapped directory.
27
+ */
28
28
  function checkAccessPermission(templatePaths, templateFile) {
29
- const files = isTemplateFileInsideGivenDirectory(templatePaths, templateFile);
29
+ const files = findTemplateInMappedTemplates(templatePaths, templateFile);
30
30
  return files;
31
31
  }
32
32
  exports.checkAccessPermission = checkAccessPermission;
@@ -1 +1 @@
1
- {"version":3,"file":"templates-access.js","sourceRoot":"","sources":["../src/templates-access.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,mCAA6C;AAsC3C,mGAtCO,0BAAkB,OAsCP;AApCpB;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB,EAAE,SAAiB;IACjE,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,GAAG,SAAS,QAAQ,SAAS,EAAE,EAAE;QACtD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC;AACzB,CAAC;AAoBC,sDAAqB;AAlBvB;;GAEG;AACH,SAAS,kCAAkC,CAAC,aAAuB,EAAE,YAAoB;IACvF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC;AAeC,gFAAkC;AAbpC,SAAS,qBAAqB,CAAC,aAAuB,EAAE,YAAoB;IAC1E,MAAM,KAAK,GAAG,kCAAkC,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAE9E,OAAO,KAAK,CAAC;AACf,CAAC;AAQC,sDAAqB;AANvB,SAAS,YAAY,CAAC,KAAe;IACnC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAC5B,CAAC;AAOC,oCAAY"}
1
+ {"version":3,"file":"templates-access.js","sourceRoot":"","sources":["../src/templates-access.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,mCAA6C;AAqC3C,mGArCO,0BAAkB,OAqCP;AAnCpB;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,SAAiB,EAAE,SAAiB;IACjE,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,GAAG,SAAS,SAAS,SAAS,EAAE,EAAE;QACvD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,eAAe,CAAC;AACzB,CAAC;AAoBC,sDAAqB;AAlBvB,SAAS,6BAA6B,CAAC,aAAuB,EAAE,YAAoB;IAClF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC;AAoBC,sEAA6B;AAlB/B;;GAEG;AACH,SAAS,qBAAqB,CAAC,aAAuB,EAAE,YAAoB;IAC1E,MAAM,KAAK,GAAG,6BAA6B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEzE,OAAO,KAAK,CAAC;AACf,CAAC;AAQC,sDAAqB;AANvB,SAAS,YAAY,CAAC,KAAe;IACnC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAC5B,CAAC;AAMC,oCAAY"}
package/utils.d.ts CHANGED
@@ -1,17 +1,21 @@
1
- import { AstObject, ChildTemplateFunction, Data, DefinitiveOptions, ErrorData, FileResolution, HelperFunction, Helpers, Parse, TagType, TemplateFunction } from './interfaces';
1
+ import { AstObject, ChildTemplateFunction, Data, DefinitiveOptions, ErrorData, FileResolution, HelperFunction, Helpers, InjectedData, Parse, TagType, TemplateFunction } from './interfaces';
2
2
  import { Store } from './store';
3
3
  declare function initVariablesAndHelpers(dataOrHelpers: Data | Helpers): string;
4
4
  declare function valueIsAFunction(value: Function): boolean;
5
+ /**
6
+ * Extract injected template data (variables & helpers) to make them available through a json file for the vscode extension.
7
+ */
8
+ declare function injectUserDataForVSCodeExtension(injectedData: InjectedData): void;
5
9
  declare function includeFn(): string;
6
10
  declare function isAChildError(error: any): error is ErrorData;
7
11
  /**
8
12
  * Example: I'm using \ today β†’ I\'m using \\ today
9
13
  */
10
14
  declare function escapeJSLiteral(value: string): string;
15
+ declare function replaceCarriageReturn(value: string): string;
11
16
  declare function getCurrentPrefixType(prefix: string, parse: DefinitiveOptions['parse']): TagType;
12
17
  declare function compileBody(templateValues: AstObject[], config: DefinitiveOptions): string;
13
18
  declare function compileContent(type: TagType, content: string, config: DefinitiveOptions): string | undefined;
14
- declare function getPathWithExtension(filePath: string, extension: string): string;
15
19
  /**
16
20
  * Inject data and helpers at every template execution.
17
21
  * Always keep placeholders.
@@ -19,10 +23,11 @@ declare function getPathWithExtension(filePath: string, extension: string): stri
19
23
  declare function injectDataAndHelpersInTemplate(data: Data, helpers: Helpers, helpersStore: Store<HelperFunction>, executableContent: string): string;
20
24
  declare function compileChildToFunction(contentReplaced: string): ChildTemplateFunction;
21
25
  declare function compileToFunction(contentReplaced: string): TemplateFunction;
26
+ declare function getPathWithExtension(filePath: string, extension: string): string;
22
27
  /**
23
28
  * If path resolution is set to "flexible", do not return the full path, it's usefull for providing only unique end path.
24
29
  */
25
- declare function getFullPath(views: string, pathWithExtension: string, fileResolution: FileResolution): string;
30
+ declare function getResolvedPath(views: string, pathWithExtension: string, fileResolution: FileResolution): string;
26
31
  /**
27
32
  * Normalize file path on windows.
28
33
  */
@@ -31,7 +36,7 @@ declare function getFileName(filename: string): string;
31
36
  declare function buildPrefixRegex(parseOptions: Parse): string;
32
37
  /**
33
38
  * Escape special regular expression characters inside a string
34
- * MDN
39
+ * $& means the whole matched string
35
40
  */
36
41
  declare function escapeRegExp(string: string): string;
37
42
  /**
@@ -41,5 +46,5 @@ declare function escapeRegExp(string: string): string;
41
46
  * @returns XML-escaped string
42
47
  */
43
48
  declare function XMLEscape(input: unknown): string;
44
- export { XMLEscape, escapeJSLiteral, getCurrentPrefixType, compileContent, buildPrefixRegex, compileBody, includeFn, initVariablesAndHelpers, getFullPath, escapeRegExp, getPathWithExtension, normalizeFilesPath, getFileName, valueIsAFunction, injectDataAndHelpersInTemplate, compileToFunction, compileChildToFunction, isAChildError, };
49
+ export { XMLEscape, escapeJSLiteral, getCurrentPrefixType, compileContent, buildPrefixRegex, compileBody, includeFn, initVariablesAndHelpers, getResolvedPath, escapeRegExp, getPathWithExtension, normalizeFilesPath, getFileName, valueIsAFunction, injectDataAndHelpersInTemplate, compileToFunction, compileChildToFunction, isAChildError, injectUserDataForVSCodeExtension, replaceCarriageReturn, };
45
50
  //# sourceMappingURL=utils.d.ts.map
package/utils.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,IAAI,EACJ,iBAAiB,EACjB,SAAS,EAET,cAAc,EACd,cAAc,EACd,OAAO,EACP,KAAK,EACL,OAAO,EACP,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,iBAAS,uBAAuB,CAAC,aAAa,EAAE,IAAI,GAAG,OAAO,UAS7D;AAiCD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,QAAQ,WAExC;AAMD,iBAAS,SAAS,WAQjB;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAErD;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,UAErC;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,WAS9E;AAED,iBAAS,WAAW,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,iBAAiB,UAe1E;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,sBAmBhF;AAED,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAOhE;AAED;;;GAGG;AACH,iBAAS,8BAA8B,CACrC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,EACnC,iBAAiB,EAAE,MAAM,UAkB1B;AAED,iBAAS,sBAAsB,CAAC,eAAe,EAAE,MAAM,yBAQtD;AAED,iBAAS,iBAAiB,CAAC,eAAe,EAAE,MAAM,oBAcjD;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,UAQ5F;AAED;;GAEG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAEvC;AAED,iBAAS,WAAW,CAAC,QAAQ,EAAE,MAAM,UAEpC;AAED,iBAAS,gBAAgB,CAAC,YAAY,EAAE,KAAK,UAW5C;AAMD;;;GAGG;AACH,iBAAS,YAAY,CAAC,MAAM,EAAE,MAAM,UAGnC;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKzC;AAED,OAAO,EACL,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,8BAA8B,EAC9B,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,GACd,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,IAAI,EACJ,iBAAiB,EACjB,SAAS,EAET,cAAc,EAEd,cAAc,EACd,OAAO,EACP,YAAY,EACZ,KAAK,EACL,OAAO,EACP,gBAAgB,EAGjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,iBAAS,uBAAuB,CAAC,aAAa,EAAE,IAAI,GAAG,OAAO,UAS7D;AAoDD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,QAAQ,WAExC;AAED;;GAEG;AACH,iBAAS,gCAAgC,CAAC,YAAY,EAAE,YAAY,QA6BnE;AAoDD,iBAAS,SAAS,WAQjB;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAErD;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,UAErC;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,MAAM,UAE3C;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,WAS9E;AAED,iBAAS,WAAW,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,iBAAiB,UAe1E;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,sBAmBhF;AAED;;;GAGG;AACH,iBAAS,8BAA8B,CACrC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,EACnC,iBAAiB,EAAE,MAAM,UAkB1B;AAED,iBAAS,sBAAsB,CAAC,eAAe,EAAE,MAAM,yBAQtD;AAED,iBAAS,iBAAiB,CAAC,eAAe,EAAE,MAAM,oBAcjD;AAED,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAOhE;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,UAQhG;AAED;;GAEG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAEvC;AAED,iBAAS,WAAW,CAAC,QAAQ,EAAE,MAAM,UAEpC;AAED,iBAAS,gBAAgB,CAAC,YAAY,EAAE,KAAK,UAW5C;AAMD;;;GAGG;AACH,iBAAS,YAAY,CAAC,MAAM,EAAE,MAAM,UAEnC;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKzC;AAED,OAAO,EACL,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,8BAA8B,EAC9B,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,gCAAgC,EAChC,qBAAqB,GACtB,CAAC"}
package/utils.js CHANGED
@@ -3,10 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isAChildError = exports.compileChildToFunction = exports.compileToFunction = exports.injectDataAndHelpersInTemplate = exports.valueIsAFunction = exports.getFileName = exports.normalizeFilesPath = exports.getPathWithExtension = exports.escapeRegExp = exports.getFullPath = exports.initVariablesAndHelpers = exports.includeFn = exports.compileBody = exports.buildPrefixRegex = exports.compileContent = exports.getCurrentPrefixType = exports.escapeJSLiteral = exports.XMLEscape = void 0;
6
+ exports.replaceCarriageReturn = exports.injectUserDataForVSCodeExtension = exports.isAChildError = exports.compileChildToFunction = exports.compileToFunction = exports.injectDataAndHelpersInTemplate = exports.valueIsAFunction = exports.getFileName = exports.normalizeFilesPath = exports.getPathWithExtension = exports.escapeRegExp = exports.getResolvedPath = exports.initVariablesAndHelpers = exports.includeFn = exports.compileBody = exports.buildPrefixRegex = exports.compileContent = exports.getCurrentPrefixType = exports.escapeJSLiteral = exports.XMLEscape = void 0;
7
7
  const checks_1 = require("./checks");
8
8
  const const_1 = require("./const");
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const templates_access_1 = require("./templates-access");
10
12
  function initVariablesAndHelpers(dataOrHelpers) {
11
13
  const dataEntries = Object.entries(dataOrHelpers);
12
14
  let variables = '';
@@ -27,8 +29,27 @@ function getValueType(value) {
27
29
  return value;
28
30
  if (valueIsInfinity(value))
29
31
  return value;
32
+ const objectTransformed = valueIsAnObject(value);
33
+ if (objectTransformed)
34
+ return objectTransformed;
30
35
  return JSON.stringify(value);
31
36
  }
37
+ function valueIsAnObject(value) {
38
+ if (typeof value !== 'object')
39
+ return false;
40
+ return (JSON.stringify(value, (_key, val) => {
41
+ if (typeof val !== 'number')
42
+ return val;
43
+ // avoid stringify replacement NaN / Infinity with "null"
44
+ if (isNaN(val) || !isFinite(val))
45
+ return val.toString();
46
+ return val;
47
+ })
48
+ // string should be converted with real value
49
+ .replace(/"NaN"/g, 'NaN')
50
+ .replace(/"Infinity"/g, 'Infinity')
51
+ .replace(/"-Infinity"/g, '-Infinity'));
52
+ }
32
53
  function valueIsNaN(value) {
33
54
  if (typeof value !== 'number')
34
55
  return false;
@@ -37,8 +58,7 @@ function valueIsNaN(value) {
37
58
  function valueIsInfinity(value) {
38
59
  if (typeof value !== 'number')
39
60
  return false;
40
- const plusOrMinus = Math.abs(value);
41
- return plusOrMinus === Infinity;
61
+ return Math.abs(value) === Infinity;
42
62
  }
43
63
  function valueIsASymbol(value) {
44
64
  return typeof value === 'symbol';
@@ -50,10 +70,75 @@ function valueIsAFunction(value) {
50
70
  return typeof value === 'function';
51
71
  }
52
72
  exports.valueIsAFunction = valueIsAFunction;
53
- // il faudra un autre render pour les enfants que le principal
54
- // le renderChild renverra un objet avec error (rΓ©elle) et content
55
- // si error alors throw new Error(error)
56
- // sur error toutes les props mises
73
+ /**
74
+ * Extract injected template data (variables & helpers) to make them available through a json file for the vscode extension.
75
+ */
76
+ function injectUserDataForVSCodeExtension(injectedData) {
77
+ const { data, development, fullPath, helpers, helpersStore, templatePaths } = injectedData;
78
+ if (!development)
79
+ return;
80
+ if ((0, checks_1.isTemplateDynamicallyDefined)(fullPath))
81
+ return;
82
+ const files = (0, templates_access_1.findTemplateInMappedTemplates)(templatePaths, fullPath);
83
+ if (!(0, templates_access_1.fileIsUnique)(files))
84
+ return;
85
+ const templateFilePath = files[0];
86
+ const userDataFilePath = node_path_1.default.join(process.cwd(), '.vscode/tao-user-data.json');
87
+ const userData = buildUserData(templateFilePath, data, helpers, helpersStore);
88
+ try {
89
+ fs_1.default.mkdirSync('.vscode', { recursive: true });
90
+ const data = fs_1.default.readFileSync(userDataFilePath, 'utf8');
91
+ const dataParsed = JSON.parse(data);
92
+ const datas = getAllOtherUserDatas(templateFilePath, dataParsed);
93
+ datas.push(userData);
94
+ const allUserDataStringified = JSON.stringify(datas);
95
+ fs_1.default.writeFileSync(userDataFilePath, allUserDataStringified);
96
+ }
97
+ catch (error) {
98
+ if (error.code === 'ENOENT') {
99
+ const userDataToArrayStringified = JSON.stringify([userData]);
100
+ fs_1.default.writeFileSync(userDataFilePath, userDataToArrayStringified);
101
+ }
102
+ }
103
+ }
104
+ exports.injectUserDataForVSCodeExtension = injectUserDataForVSCodeExtension;
105
+ function getAllOtherUserDatas(fileName, userDatas) {
106
+ return userDatas.filter((data) => data.template !== fileName);
107
+ }
108
+ function buildUserData(fileName, data, helpers, helpersStore) {
109
+ const variables = Object.entries(data);
110
+ const helpersName = Object.entries(helpers);
111
+ const globalHelpersName = Object.entries(helpersStore.getAll());
112
+ const allHelpers = [...helpersName, ...globalHelpersName];
113
+ const variablesData = [];
114
+ for (const [key, value] of variables) {
115
+ variablesData.push({
116
+ name: key,
117
+ type: typeof value,
118
+ });
119
+ }
120
+ const helpersData = [];
121
+ for (const [key, fn] of allHelpers) {
122
+ const source = getFunctionSignatureParams(fn);
123
+ helpersData.push({
124
+ name: key,
125
+ params: source,
126
+ });
127
+ }
128
+ const userData = {
129
+ template: fileName,
130
+ variables: variablesData,
131
+ helpers: helpersData,
132
+ lastUpdate: new Date().toISOString(),
133
+ };
134
+ return userData;
135
+ }
136
+ function getFunctionSignatureParams(fn) {
137
+ const fnToString = fn.toString();
138
+ const allParamsRegex = /\([^\)]*\)/i;
139
+ const matchingResult = fnToString.match(allParamsRegex);
140
+ return (matchingResult === null || matchingResult === void 0 ? void 0 : matchingResult[0]) || '';
141
+ }
57
142
  function includeFn() {
58
143
  return `const include = (templatePath, data, helpers) => {
59
144
  data = {...${const_1.TEMPLATE_VARNAME}, ...data};
@@ -75,6 +160,10 @@ function escapeJSLiteral(value) {
75
160
  return value.replace(/\\|'/g, '\\$&').replace(/\r\n|\n|\r/g, '\\n');
76
161
  }
77
162
  exports.escapeJSLiteral = escapeJSLiteral;
163
+ function replaceCarriageReturn(value) {
164
+ return value.replace(/\r\n|\n|\r/g, '\\n');
165
+ }
166
+ exports.replaceCarriageReturn = replaceCarriageReturn;
78
167
  function getCurrentPrefixType(prefix, parse) {
79
168
  var _a;
80
169
  const parseOptions = {
@@ -117,15 +206,6 @@ function compileContent(type, content, config) {
117
206
  }
118
207
  }
119
208
  exports.compileContent = compileContent;
120
- function getPathWithExtension(filePath, extension) {
121
- if ((0, checks_1.isTemplateDynamicallyDefined)(filePath))
122
- return filePath;
123
- const pathContainsExtension = node_path_1.default.extname(filePath);
124
- if (pathContainsExtension)
125
- return filePath;
126
- return `${filePath}.${extension}`;
127
- }
128
- exports.getPathWithExtension = getPathWithExtension;
129
209
  /**
130
210
  * Inject data and helpers at every template execution.
131
211
  * Always keep placeholders.
@@ -165,10 +245,18 @@ function compileToFunction(contentReplaced) {
165
245
  }
166
246
  }
167
247
  exports.compileToFunction = compileToFunction;
248
+ function getPathWithExtension(filePath, extension) {
249
+ if ((0, checks_1.isTemplateDynamicallyDefined)(filePath))
250
+ return filePath;
251
+ const normalizedFilePath = normalizeFilesPath(filePath);
252
+ const pathWithoutExtension = normalizedFilePath.replace(`.${extension}`, '');
253
+ return `${pathWithoutExtension}.${extension}`;
254
+ }
255
+ exports.getPathWithExtension = getPathWithExtension;
168
256
  /**
169
257
  * If path resolution is set to "flexible", do not return the full path, it's usefull for providing only unique end path.
170
258
  */
171
- function getFullPath(views, pathWithExtension, fileResolution) {
259
+ function getResolvedPath(views, pathWithExtension, fileResolution) {
172
260
  if (fileResolution === 'flexible')
173
261
  return pathWithExtension;
174
262
  const isAbsolutePath = node_path_1.default.isAbsolute(pathWithExtension);
@@ -177,7 +265,7 @@ function getFullPath(views, pathWithExtension, fileResolution) {
177
265
  const fullPath = node_path_1.default.join(views, pathWithExtension);
178
266
  return normalizeFilesPath(fullPath);
179
267
  }
180
- exports.getFullPath = getFullPath;
268
+ exports.getResolvedPath = getResolvedPath;
181
269
  /**
182
270
  * Normalize file path on windows.
183
271
  */
@@ -205,10 +293,9 @@ function replaceChar(input) {
205
293
  }
206
294
  /**
207
295
  * Escape special regular expression characters inside a string
208
- * MDN
296
+ * $& means the whole matched string
209
297
  */
210
298
  function escapeRegExp(string) {
211
- // $& means the whole matched string
212
299
  return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&');
213
300
  }
214
301
  exports.escapeRegExp = escapeRegExp;
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}