minijinja-js 2.12.0 → 2.13.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.
- package/README.md +33 -0
- package/dist/bundler/README.md +33 -0
- package/dist/bundler/minijinja_js.d.ts +40 -25
- package/dist/bundler/minijinja_js_bg.js +195 -154
- package/dist/bundler/minijinja_js_bg.wasm +0 -0
- package/dist/bundler/minijinja_js_bg.wasm.d.ts +21 -19
- package/dist/bundler/package.json +1 -1
- package/dist/node/README.md +33 -0
- package/dist/node/minijinja_js.d.ts +40 -25
- package/dist/node/minijinja_js.js +195 -154
- package/dist/node/minijinja_js_bg.wasm +0 -0
- package/dist/node/minijinja_js_bg.wasm.d.ts +21 -19
- package/dist/node/package.json +1 -1
- package/dist/web/README.md +33 -0
- package/dist/web/minijinja_js.d.ts +61 -44
- package/dist/web/minijinja_js.js +191 -154
- package/dist/web/minijinja_js_bg.wasm +0 -0
- package/dist/web/minijinja_js_bg.wasm.d.ts +21 -19
- package/dist/web/package.json +1 -1
- package/package.json +1 -1
|
@@ -214,11 +214,13 @@ class Environment {
|
|
|
214
214
|
const ptr = this.__destroy_into_raw();
|
|
215
215
|
wasm.__wbg_environment_free(ptr, 0);
|
|
216
216
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
217
|
+
/**
|
|
218
|
+
* Enables or disables block trimming.
|
|
219
|
+
* @returns {boolean}
|
|
220
|
+
*/
|
|
221
|
+
get trimBlocks() {
|
|
222
|
+
const ret = wasm.environment_trimBlocks(this.__wbg_ptr);
|
|
223
|
+
return ret !== 0;
|
|
222
224
|
}
|
|
223
225
|
/**
|
|
224
226
|
* Registers a new template by name and source.
|
|
@@ -243,13 +245,21 @@ class Environment {
|
|
|
243
245
|
}
|
|
244
246
|
}
|
|
245
247
|
/**
|
|
246
|
-
*
|
|
248
|
+
* Enables or disables the lstrip blocks feature.
|
|
249
|
+
* @returns {boolean}
|
|
250
|
+
*/
|
|
251
|
+
get lstripBlocks() {
|
|
252
|
+
const ret = wasm.environment_lstripBlocks(this.__wbg_ptr);
|
|
253
|
+
return ret !== 0;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Removes a global again.
|
|
247
257
|
* @param {string} name
|
|
248
258
|
*/
|
|
249
|
-
|
|
259
|
+
removeGlobal(name) {
|
|
250
260
|
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
251
261
|
const len0 = WASM_VECTOR_LEN;
|
|
252
|
-
wasm.
|
|
262
|
+
wasm.environment_removeGlobal(this.__wbg_ptr, ptr0, len0);
|
|
253
263
|
}
|
|
254
264
|
/**
|
|
255
265
|
* Clears all templates from the environment.
|
|
@@ -258,71 +268,19 @@ class Environment {
|
|
|
258
268
|
wasm.environment_clearTemplates(this.__wbg_ptr);
|
|
259
269
|
}
|
|
260
270
|
/**
|
|
261
|
-
*
|
|
262
|
-
* @param {string} name
|
|
263
|
-
* @param {any} ctx
|
|
264
|
-
* @returns {string}
|
|
271
|
+
* Enables python compatibility.
|
|
265
272
|
*/
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
let deferred3_1;
|
|
269
|
-
try {
|
|
270
|
-
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
271
|
-
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
272
|
-
const len0 = WASM_VECTOR_LEN;
|
|
273
|
-
wasm.environment_renderTemplate(retptr, this.__wbg_ptr, ptr0, len0, addHeapObject(ctx));
|
|
274
|
-
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
275
|
-
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
276
|
-
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
277
|
-
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
278
|
-
var ptr2 = r0;
|
|
279
|
-
var len2 = r1;
|
|
280
|
-
if (r3) {
|
|
281
|
-
ptr2 = 0; len2 = 0;
|
|
282
|
-
throw takeObject(r2);
|
|
283
|
-
}
|
|
284
|
-
deferred3_0 = ptr2;
|
|
285
|
-
deferred3_1 = len2;
|
|
286
|
-
return getStringFromWasm0(ptr2, len2);
|
|
287
|
-
} finally {
|
|
288
|
-
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
289
|
-
wasm.__wbindgen_export_3(deferred3_0, deferred3_1, 1);
|
|
290
|
-
}
|
|
273
|
+
enablePyCompat() {
|
|
274
|
+
wasm.environment_enablePyCompat(this.__wbg_ptr);
|
|
291
275
|
}
|
|
292
276
|
/**
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
* This is useful for one-off template rendering without registering the template. The
|
|
296
|
-
* template is parsed and rendered immediately.
|
|
297
|
-
* @param {string} source
|
|
298
|
-
* @param {any} ctx
|
|
299
|
-
* @returns {string}
|
|
277
|
+
* Removes a template by name.
|
|
278
|
+
* @param {string} name
|
|
300
279
|
*/
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
306
|
-
const ptr0 = passStringToWasm0(source, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
307
|
-
const len0 = WASM_VECTOR_LEN;
|
|
308
|
-
wasm.environment_renderStr(retptr, this.__wbg_ptr, ptr0, len0, addHeapObject(ctx));
|
|
309
|
-
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
310
|
-
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
311
|
-
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
312
|
-
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
313
|
-
var ptr2 = r0;
|
|
314
|
-
var len2 = r1;
|
|
315
|
-
if (r3) {
|
|
316
|
-
ptr2 = 0; len2 = 0;
|
|
317
|
-
throw takeObject(r2);
|
|
318
|
-
}
|
|
319
|
-
deferred3_0 = ptr2;
|
|
320
|
-
deferred3_1 = len2;
|
|
321
|
-
return getStringFromWasm0(ptr2, len2);
|
|
322
|
-
} finally {
|
|
323
|
-
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
324
|
-
wasm.__wbindgen_export_3(deferred3_0, deferred3_1, 1);
|
|
325
|
-
}
|
|
280
|
+
removeTemplate(name) {
|
|
281
|
+
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
282
|
+
const len0 = WASM_VECTOR_LEN;
|
|
283
|
+
wasm.environment_removeTemplate(this.__wbg_ptr, ptr0, len0);
|
|
326
284
|
}
|
|
327
285
|
/**
|
|
328
286
|
* Like `renderStr` but with a named template for auto escape detection.
|
|
@@ -360,99 +318,57 @@ class Environment {
|
|
|
360
318
|
}
|
|
361
319
|
}
|
|
362
320
|
/**
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
* This is useful for evaluating expressions outside of templates. The expression is
|
|
366
|
-
* parsed and evaluated immediately.
|
|
367
|
-
* @param {string} expr
|
|
321
|
+
* Renders a registered template by name with the given context.
|
|
322
|
+
* @param {string} name
|
|
368
323
|
* @param {any} ctx
|
|
369
|
-
* @returns {
|
|
324
|
+
* @returns {string}
|
|
370
325
|
*/
|
|
371
|
-
|
|
326
|
+
renderTemplate(name, ctx) {
|
|
327
|
+
let deferred3_0;
|
|
328
|
+
let deferred3_1;
|
|
372
329
|
try {
|
|
373
330
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
374
|
-
const ptr0 = passStringToWasm0(
|
|
331
|
+
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
375
332
|
const len0 = WASM_VECTOR_LEN;
|
|
376
|
-
wasm.
|
|
333
|
+
wasm.environment_renderTemplate(retptr, this.__wbg_ptr, ptr0, len0, addHeapObject(ctx));
|
|
377
334
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
378
335
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
379
336
|
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
380
|
-
|
|
381
|
-
|
|
337
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
338
|
+
var ptr2 = r0;
|
|
339
|
+
var len2 = r1;
|
|
340
|
+
if (r3) {
|
|
341
|
+
ptr2 = 0; len2 = 0;
|
|
342
|
+
throw takeObject(r2);
|
|
382
343
|
}
|
|
383
|
-
|
|
344
|
+
deferred3_0 = ptr2;
|
|
345
|
+
deferred3_1 = len2;
|
|
346
|
+
return getStringFromWasm0(ptr2, len2);
|
|
384
347
|
} finally {
|
|
385
348
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
349
|
+
wasm.__wbindgen_export_3(deferred3_0, deferred3_1, 1);
|
|
386
350
|
}
|
|
387
351
|
}
|
|
388
|
-
/**
|
|
389
|
-
* Registers a filter function.
|
|
390
|
-
* @param {string} name
|
|
391
|
-
* @param {Function} func
|
|
392
|
-
*/
|
|
393
|
-
addFilter(name, func) {
|
|
394
|
-
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
395
|
-
const len0 = WASM_VECTOR_LEN;
|
|
396
|
-
wasm.environment_addFilter(this.__wbg_ptr, ptr0, len0, addHeapObject(func));
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* Registers a test function.
|
|
400
|
-
* @param {string} name
|
|
401
|
-
* @param {Function} func
|
|
402
|
-
*/
|
|
403
|
-
addTest(name, func) {
|
|
404
|
-
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
405
|
-
const len0 = WASM_VECTOR_LEN;
|
|
406
|
-
wasm.environment_addTest(this.__wbg_ptr, ptr0, len0, addHeapObject(func));
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* Enables python compatibility.
|
|
410
|
-
*/
|
|
411
|
-
enablePyCompat() {
|
|
412
|
-
wasm.environment_enablePyCompat(this.__wbg_ptr);
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Enables or disables debug mode.
|
|
416
|
-
* @returns {boolean}
|
|
417
|
-
*/
|
|
418
|
-
get debug() {
|
|
419
|
-
const ret = wasm.environment_debug(this.__wbg_ptr);
|
|
420
|
-
return ret !== 0;
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* @param {boolean} yes
|
|
424
|
-
*/
|
|
425
|
-
set debug(yes) {
|
|
426
|
-
wasm.environment_set_debug(this.__wbg_ptr, yes);
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Enables or disables block trimming.
|
|
430
|
-
* @returns {boolean}
|
|
431
|
-
*/
|
|
432
|
-
get trimBlocks() {
|
|
433
|
-
const ret = wasm.environment_trimBlocks(this.__wbg_ptr);
|
|
434
|
-
return ret !== 0;
|
|
435
|
-
}
|
|
436
352
|
/**
|
|
437
353
|
* @param {boolean} yes
|
|
438
354
|
*/
|
|
439
355
|
set trimBlocks(yes) {
|
|
440
356
|
wasm.environment_set_trimBlocks(this.__wbg_ptr, yes);
|
|
441
357
|
}
|
|
442
|
-
/**
|
|
443
|
-
* Enables or disables the lstrip blocks feature.
|
|
444
|
-
* @returns {boolean}
|
|
445
|
-
*/
|
|
446
|
-
get lstripBlocks() {
|
|
447
|
-
const ret = wasm.environment_lstripBlocks(this.__wbg_ptr);
|
|
448
|
-
return ret !== 0;
|
|
449
|
-
}
|
|
450
358
|
/**
|
|
451
359
|
* @param {boolean} yes
|
|
452
360
|
*/
|
|
453
361
|
set lstripBlocks(yes) {
|
|
454
362
|
wasm.environment_set_lstripBlocks(this.__wbg_ptr, yes);
|
|
455
363
|
}
|
|
364
|
+
/**
|
|
365
|
+
* Reconfigures the behavior of undefined variables.
|
|
366
|
+
* @returns {UndefinedBehavior}
|
|
367
|
+
*/
|
|
368
|
+
get undefinedBehavior() {
|
|
369
|
+
const ret = wasm.environment_undefinedBehavior(this.__wbg_ptr);
|
|
370
|
+
return __wbindgen_enum_UndefinedBehavior[ret];
|
|
371
|
+
}
|
|
456
372
|
/**
|
|
457
373
|
* Enables or disables keeping of the final newline.
|
|
458
374
|
* @returns {boolean}
|
|
@@ -462,18 +378,14 @@ class Environment {
|
|
|
462
378
|
return ret !== 0;
|
|
463
379
|
}
|
|
464
380
|
/**
|
|
465
|
-
*
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
/**
|
|
471
|
-
* Reconfigures the behavior of undefined variables.
|
|
472
|
-
* @returns {UndefinedBehavior}
|
|
381
|
+
* Sets a callback to join template paths (for relative includes/extends).
|
|
382
|
+
*
|
|
383
|
+
* The callback receives `(name, parent)` and should return a joined path string.
|
|
384
|
+
* If it throws or returns a non-string, the original `name` is used.
|
|
385
|
+
* @param {Function} func
|
|
473
386
|
*/
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
return __wbindgen_enum_UndefinedBehavior[ret];
|
|
387
|
+
setPathJoinCallback(func) {
|
|
388
|
+
wasm.environment_setPathJoinCallback(this.__wbg_ptr, addHeapObject(func));
|
|
477
389
|
}
|
|
478
390
|
/**
|
|
479
391
|
* @param {UndefinedBehavior} value
|
|
@@ -491,6 +403,18 @@ class Environment {
|
|
|
491
403
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
492
404
|
}
|
|
493
405
|
}
|
|
406
|
+
/**
|
|
407
|
+
* @param {boolean} yes
|
|
408
|
+
*/
|
|
409
|
+
set keepTrailingNewline(yes) {
|
|
410
|
+
wasm.environment_set_keepTrailingNewline(this.__wbg_ptr, yes);
|
|
411
|
+
}
|
|
412
|
+
constructor() {
|
|
413
|
+
const ret = wasm.environment_new();
|
|
414
|
+
this.__wbg_ptr = ret >>> 0;
|
|
415
|
+
EnvironmentFinalization.register(this, this.__wbg_ptr, this);
|
|
416
|
+
return this;
|
|
417
|
+
}
|
|
494
418
|
/**
|
|
495
419
|
* Configures the max-fuel for template evaluation.
|
|
496
420
|
* @returns {number | undefined}
|
|
@@ -499,12 +423,66 @@ class Environment {
|
|
|
499
423
|
const ret = wasm.environment_fuel(this.__wbg_ptr);
|
|
500
424
|
return ret === 0x100000001 ? undefined : ret;
|
|
501
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* Enables or disables debug mode.
|
|
428
|
+
* @returns {boolean}
|
|
429
|
+
*/
|
|
430
|
+
get debug() {
|
|
431
|
+
const ret = wasm.environment_debug(this.__wbg_ptr);
|
|
432
|
+
return ret !== 0;
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Registers a test function.
|
|
436
|
+
* @param {string} name
|
|
437
|
+
* @param {Function} func
|
|
438
|
+
*/
|
|
439
|
+
addTest(name, func) {
|
|
440
|
+
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
441
|
+
const len0 = WASM_VECTOR_LEN;
|
|
442
|
+
wasm.environment_addTest(this.__wbg_ptr, ptr0, len0, addHeapObject(func));
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Evaluates an expression with the given context.
|
|
446
|
+
*
|
|
447
|
+
* This is useful for evaluating expressions outside of templates. The expression is
|
|
448
|
+
* parsed and evaluated immediately.
|
|
449
|
+
* @param {string} expr
|
|
450
|
+
* @param {any} ctx
|
|
451
|
+
* @returns {any}
|
|
452
|
+
*/
|
|
453
|
+
evalExpr(expr, ctx) {
|
|
454
|
+
try {
|
|
455
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
456
|
+
const ptr0 = passStringToWasm0(expr, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
457
|
+
const len0 = WASM_VECTOR_LEN;
|
|
458
|
+
wasm.environment_evalExpr(retptr, this.__wbg_ptr, ptr0, len0, addHeapObject(ctx));
|
|
459
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
460
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
461
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
462
|
+
if (r2) {
|
|
463
|
+
throw takeObject(r1);
|
|
464
|
+
}
|
|
465
|
+
return takeObject(r0);
|
|
466
|
+
} finally {
|
|
467
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
502
470
|
/**
|
|
503
471
|
* @param {number | null} [value]
|
|
504
472
|
*/
|
|
505
473
|
set fuel(value) {
|
|
506
474
|
wasm.environment_set_fuel(this.__wbg_ptr, isLikeNone(value) ? 0x100000001 : (value) >>> 0);
|
|
507
475
|
}
|
|
476
|
+
/**
|
|
477
|
+
* Registers a filter function.
|
|
478
|
+
* @param {string} name
|
|
479
|
+
* @param {Function} func
|
|
480
|
+
*/
|
|
481
|
+
addFilter(name, func) {
|
|
482
|
+
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
483
|
+
const len0 = WASM_VECTOR_LEN;
|
|
484
|
+
wasm.environment_addFilter(this.__wbg_ptr, ptr0, len0, addHeapObject(func));
|
|
485
|
+
}
|
|
508
486
|
/**
|
|
509
487
|
* Registers a value as global.
|
|
510
488
|
* @param {string} name
|
|
@@ -526,13 +504,56 @@ class Environment {
|
|
|
526
504
|
}
|
|
527
505
|
}
|
|
528
506
|
/**
|
|
529
|
-
*
|
|
530
|
-
*
|
|
507
|
+
* Renders a string template with the given context.
|
|
508
|
+
*
|
|
509
|
+
* This is useful for one-off template rendering without registering the template. The
|
|
510
|
+
* template is parsed and rendered immediately.
|
|
511
|
+
* @param {string} source
|
|
512
|
+
* @param {any} ctx
|
|
513
|
+
* @returns {string}
|
|
531
514
|
*/
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
515
|
+
renderStr(source, ctx) {
|
|
516
|
+
let deferred3_0;
|
|
517
|
+
let deferred3_1;
|
|
518
|
+
try {
|
|
519
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
520
|
+
const ptr0 = passStringToWasm0(source, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
|
|
521
|
+
const len0 = WASM_VECTOR_LEN;
|
|
522
|
+
wasm.environment_renderStr(retptr, this.__wbg_ptr, ptr0, len0, addHeapObject(ctx));
|
|
523
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
524
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
525
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
526
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
527
|
+
var ptr2 = r0;
|
|
528
|
+
var len2 = r1;
|
|
529
|
+
if (r3) {
|
|
530
|
+
ptr2 = 0; len2 = 0;
|
|
531
|
+
throw takeObject(r2);
|
|
532
|
+
}
|
|
533
|
+
deferred3_0 = ptr2;
|
|
534
|
+
deferred3_1 = len2;
|
|
535
|
+
return getStringFromWasm0(ptr2, len2);
|
|
536
|
+
} finally {
|
|
537
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
538
|
+
wasm.__wbindgen_export_3(deferred3_0, deferred3_1, 1);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Registers a synchronous template loader callback.
|
|
543
|
+
*
|
|
544
|
+
* The provided function is called with a template name and must return a
|
|
545
|
+
* string with the template source or `null`/`undefined` if the template
|
|
546
|
+
* does not exist. Errors thrown are propagated as MiniJinja errors.
|
|
547
|
+
* @param {Function} func
|
|
548
|
+
*/
|
|
549
|
+
setLoader(func) {
|
|
550
|
+
wasm.environment_setLoader(this.__wbg_ptr, addHeapObject(func));
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* @param {boolean} yes
|
|
554
|
+
*/
|
|
555
|
+
set debug(yes) {
|
|
556
|
+
wasm.environment_set_debug(this.__wbg_ptr, yes);
|
|
536
557
|
}
|
|
537
558
|
}
|
|
538
559
|
module.exports.Environment = Environment;
|
|
@@ -560,6 +581,16 @@ module.exports.__wbg_call_672a4d21634d4a24 = function() { return handleError(fun
|
|
|
560
581
|
return addHeapObject(ret);
|
|
561
582
|
}, arguments) };
|
|
562
583
|
|
|
584
|
+
module.exports.__wbg_call_7cccdd69e0791ae2 = function() { return handleError(function (arg0, arg1, arg2) {
|
|
585
|
+
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
|
|
586
|
+
return addHeapObject(ret);
|
|
587
|
+
}, arguments) };
|
|
588
|
+
|
|
589
|
+
module.exports.__wbg_call_833bed5770ea2041 = function() { return handleError(function (arg0, arg1, arg2, arg3) {
|
|
590
|
+
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));
|
|
591
|
+
return addHeapObject(ret);
|
|
592
|
+
}, arguments) };
|
|
593
|
+
|
|
563
594
|
module.exports.__wbg_done_769e5ede4b31c67b = function(arg0) {
|
|
564
595
|
const ret = getObject(arg0).done;
|
|
565
596
|
return ret;
|
|
@@ -796,6 +827,11 @@ module.exports.__wbindgen_is_function = function(arg0) {
|
|
|
796
827
|
return ret;
|
|
797
828
|
};
|
|
798
829
|
|
|
830
|
+
module.exports.__wbindgen_is_null = function(arg0) {
|
|
831
|
+
const ret = getObject(arg0) === null;
|
|
832
|
+
return ret;
|
|
833
|
+
};
|
|
834
|
+
|
|
799
835
|
module.exports.__wbindgen_is_object = function(arg0) {
|
|
800
836
|
const val = getObject(arg0);
|
|
801
837
|
const ret = typeof(val) === 'object' && val !== null;
|
|
@@ -807,6 +843,11 @@ module.exports.__wbindgen_is_string = function(arg0) {
|
|
|
807
843
|
return ret;
|
|
808
844
|
};
|
|
809
845
|
|
|
846
|
+
module.exports.__wbindgen_is_undefined = function(arg0) {
|
|
847
|
+
const ret = getObject(arg0) === undefined;
|
|
848
|
+
return ret;
|
|
849
|
+
};
|
|
850
|
+
|
|
810
851
|
module.exports.__wbindgen_jsval_eq = function(arg0, arg1) {
|
|
811
852
|
const ret = getObject(arg0) === getObject(arg1);
|
|
812
853
|
return ret;
|
|
Binary file
|
|
@@ -2,31 +2,33 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
4
|
export const __wbg_environment_free: (a: number, b: number) => void;
|
|
5
|
-
export const environment_new: () => number;
|
|
6
|
-
export const environment_addTemplate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
7
|
-
export const environment_removeTemplate: (a: number, b: number, c: number) => void;
|
|
8
|
-
export const environment_clearTemplates: (a: number) => void;
|
|
9
|
-
export const environment_renderTemplate: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
10
|
-
export const environment_renderStr: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
11
|
-
export const environment_renderNamedStr: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
12
|
-
export const environment_evalExpr: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
13
5
|
export const environment_addFilter: (a: number, b: number, c: number, d: number) => void;
|
|
6
|
+
export const environment_addGlobal: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
7
|
+
export const environment_addTemplate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
14
8
|
export const environment_addTest: (a: number, b: number, c: number, d: number) => void;
|
|
15
|
-
export const
|
|
9
|
+
export const environment_clearTemplates: (a: number) => void;
|
|
16
10
|
export const environment_debug: (a: number) => number;
|
|
17
|
-
export const
|
|
18
|
-
export const
|
|
19
|
-
export const
|
|
20
|
-
export const environment_lstripBlocks: (a: number) => number;
|
|
21
|
-
export const environment_set_lstripBlocks: (a: number, b: number) => void;
|
|
11
|
+
export const environment_enablePyCompat: (a: number) => void;
|
|
12
|
+
export const environment_evalExpr: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
13
|
+
export const environment_fuel: (a: number) => number;
|
|
22
14
|
export const environment_keepTrailingNewline: (a: number) => number;
|
|
15
|
+
export const environment_lstripBlocks: (a: number) => number;
|
|
16
|
+
export const environment_new: () => number;
|
|
17
|
+
export const environment_removeGlobal: (a: number, b: number, c: number) => void;
|
|
18
|
+
export const environment_removeTemplate: (a: number, b: number, c: number) => void;
|
|
19
|
+
export const environment_renderNamedStr: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
20
|
+
export const environment_renderStr: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
21
|
+
export const environment_renderTemplate: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
22
|
+
export const environment_setLoader: (a: number, b: number) => void;
|
|
23
|
+
export const environment_setPathJoinCallback: (a: number, b: number) => void;
|
|
24
|
+
export const environment_set_debug: (a: number, b: number) => void;
|
|
25
|
+
export const environment_set_fuel: (a: number, b: number) => void;
|
|
23
26
|
export const environment_set_keepTrailingNewline: (a: number, b: number) => void;
|
|
24
|
-
export const
|
|
27
|
+
export const environment_set_lstripBlocks: (a: number, b: number) => void;
|
|
28
|
+
export const environment_set_trimBlocks: (a: number, b: number) => void;
|
|
25
29
|
export const environment_set_undefinedBehavior: (a: number, b: number, c: number) => void;
|
|
26
|
-
export const
|
|
27
|
-
export const
|
|
28
|
-
export const environment_addGlobal: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
29
|
-
export const environment_removeGlobal: (a: number, b: number, c: number) => void;
|
|
30
|
+
export const environment_trimBlocks: (a: number) => number;
|
|
31
|
+
export const environment_undefinedBehavior: (a: number) => number;
|
|
30
32
|
export const __wbindgen_export_0: (a: number, b: number) => number;
|
|
31
33
|
export const __wbindgen_export_1: (a: number, b: number, c: number, d: number) => number;
|
|
32
34
|
export const __wbindgen_export_2: (a: number) => void;
|
package/dist/node/package.json
CHANGED
package/dist/web/README.md
CHANGED
|
@@ -46,6 +46,38 @@ const result = env.renderTemplate('index.html', { name: 'World' });
|
|
|
46
46
|
console.log(result);
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
Resolve includes/extends from the filesystem (Node, etc...):
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { Environment } from "minijinja-js";
|
|
53
|
+
import fs from "node:fs";
|
|
54
|
+
import path from "node:path";
|
|
55
|
+
|
|
56
|
+
const env = new Environment();
|
|
57
|
+
|
|
58
|
+
// Resolve relative paths like "./partial.html" against the parent template
|
|
59
|
+
env.setPathJoinCallback((name, parent) => {
|
|
60
|
+
const parentDir = parent ? path.dirname(parent) : process.cwd();
|
|
61
|
+
const joined = path.resolve(parentDir, name);
|
|
62
|
+
return joined.replace(/\\\\/g, '/');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// Synchronous loader: return template source or null/undefined if missing
|
|
66
|
+
env.setLoader((name) => {
|
|
67
|
+
try {
|
|
68
|
+
return fs.readFileSync(name, "utf8");
|
|
69
|
+
} catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Example: main in-memory, include from disk under ./templates/dir/inc.html
|
|
75
|
+
const templatePath = path.resolve(process.cwd(), "templates/dir/main.html");
|
|
76
|
+
env.addTemplate(templatePath, "Hello {% include './inc.html' %}!");
|
|
77
|
+
console.log(env.renderTemplate(templatePath, { value: "World" }));
|
|
78
|
+
// -> Hello [World]!
|
|
79
|
+
```
|
|
80
|
+
|
|
49
81
|
Evaluate an expression:
|
|
50
82
|
|
|
51
83
|
```typescript
|
|
@@ -74,6 +106,7 @@ others probably not so much. You might run into the following:
|
|
|
74
106
|
|
|
75
107
|
* Access of the template engine state from JavaScript is not possible.
|
|
76
108
|
* You cannot register a custom auto escape callback or a finalizer
|
|
109
|
+
* The loader is synchronous; use sync I/O in Node etc... (e.g. `fs.readFileSync`)
|
|
77
110
|
* If the engine panics, the WASM runtime corrupts.
|
|
78
111
|
|
|
79
112
|
## Sponsor
|