node-tao 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -0
- package/const.d.ts +1 -1
- package/const.d.ts.map +1 -1
- package/const.js +1 -1
- package/const.js.map +1 -1
- package/package.json +2 -3
- package/utils.d.ts.map +1 -1
- package/utils.js +20 -2
- package/utils.js.map +1 -1
package/README.md
CHANGED
|
@@ -156,6 +156,17 @@ const rendered = tao.render('@header', { title: 'Computer shop' });
|
|
|
156
156
|
tao.helpersStore.remove('myHelperFn');
|
|
157
157
|
```
|
|
158
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
|
+
|
|
159
170
|
## Security by design
|
|
160
171
|
|
|
161
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.
|
|
@@ -186,6 +197,60 @@ If you want to inspect the data provided to the template, it is available direct
|
|
|
186
197
|
|
|
187
198
|
NB: _set `metrics: true` to activate this option. Do not activate this option in production._
|
|
188
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
|
+
|
|
189
254
|
## FAQs
|
|
190
255
|
|
|
191
256
|
<details>
|
|
@@ -209,7 +274,9 @@ It started as a fork of `eta`, but became a dedicated library because the change
|
|
|
209
274
|
- **Clearer template syntax**: No prefix are needed.
|
|
210
275
|
- **Helpers**: Global and local helpers, which are clearer and more suitable for little template logic.
|
|
211
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.
|
|
212
278
|
- **Performance**: Various performance optimization.
|
|
279
|
+
- **Testing**: Modern and up to date numerous tests.
|
|
213
280
|
|
|
214
281
|
</details>
|
|
215
282
|
|
|
@@ -236,6 +303,10 @@ V0.0.2: Fix node modules exclusion in files matching for the error template.
|
|
|
236
303
|
|
|
237
304
|
V0.0.3: Data exchange for the official extension, and various improvements.
|
|
238
305
|
|
|
306
|
+
V0.0.4: Fix NaN or Infinity value provided inside an object into the template.
|
|
307
|
+
|
|
308
|
+
V0.0.5: Fix character escape triggering an invalid js syntax.
|
|
309
|
+
|
|
239
310
|
## Credits
|
|
240
311
|
|
|
241
312
|
- Syntax and some parts of compilation are based on `eta`.
|
package/const.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ 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 = "
|
|
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;
|
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,
|
|
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
|
@@ -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 = '
|
|
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;
|
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;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,
|
|
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-tao",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "Lightweight, fast, and powerful embedded JS template engine",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"template engine",
|
|
@@ -23,8 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
25
|
"test": "jest",
|
|
26
|
-
"build": "rimraf dist && tsc && cpx src/
|
|
27
|
-
"build-for-publish": "rimraf dist && tsc && cpx src/error/error.html dist/error && cpx package.json dist/ && cpx README.md dist/",
|
|
26
|
+
"build": "rimraf dist && tsc && cpx src/error/error.html dist/error && cpx package.json dist/ && cpx README.md dist/",
|
|
28
27
|
"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
28
|
},
|
|
30
29
|
"devDependencies": {
|
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,EAEd,cAAc,EACd,OAAO,EACP,YAAY,EACZ,KAAK,EACL,OAAO,EACP,gBAAgB,EAGjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,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,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,GACjC,CAAC"}
|
package/utils.js
CHANGED
|
@@ -29,8 +29,27 @@ function getValueType(value) {
|
|
|
29
29
|
return value;
|
|
30
30
|
if (valueIsInfinity(value))
|
|
31
31
|
return value;
|
|
32
|
+
const objectTransformed = valueIsAnObject(value);
|
|
33
|
+
if (objectTransformed)
|
|
34
|
+
return objectTransformed;
|
|
32
35
|
return JSON.stringify(value);
|
|
33
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
|
+
}
|
|
34
53
|
function valueIsNaN(value) {
|
|
35
54
|
if (typeof value !== 'number')
|
|
36
55
|
return false;
|
|
@@ -39,8 +58,7 @@ function valueIsNaN(value) {
|
|
|
39
58
|
function valueIsInfinity(value) {
|
|
40
59
|
if (typeof value !== 'number')
|
|
41
60
|
return false;
|
|
42
|
-
|
|
43
|
-
return plusOrMinus === Infinity;
|
|
61
|
+
return Math.abs(value) === Infinity;
|
|
44
62
|
}
|
|
45
63
|
function valueIsASymbol(value) {
|
|
46
64
|
return typeof value === 'symbol';
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAwD;AACxD,mCAOiB;AAmBjB,0DAA6B;AAE7B,4CAAoB;AACpB,yDAAiF;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|