binja 0.4.4 → 0.4.6

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/dist/index.js CHANGED
@@ -1423,6 +1423,7 @@ class Parser {
1423
1423
  // src/runtime/context.ts
1424
1424
  function createForLoop(items, index, depth, lastCycleValue, parentloop) {
1425
1425
  const length = items.length;
1426
+ const revCount = length - index;
1426
1427
  const forloop = {
1427
1428
  _items: items,
1428
1429
  _idx: index,
@@ -1435,17 +1436,19 @@ function createForLoop(items, index, depth, lastCycleValue, parentloop) {
1435
1436
  index0: index,
1436
1437
  depth,
1437
1438
  depth0: depth - 1,
1438
- revcounter: length - index,
1439
- revcounter0: length - index - 1,
1440
- revindex: length - index,
1441
- revindex0: length - index - 1,
1439
+ revcounter: revCount,
1440
+ revcounter0: revCount - 1,
1441
+ revindex: revCount,
1442
+ revindex0: revCount - 1,
1442
1443
  get previtem() {
1443
1444
  return this._idx > 0 ? this._items[this._idx - 1] : undefined;
1444
1445
  },
1445
1446
  get nextitem() {
1446
1447
  return this._idx < this._items.length - 1 ? this._items[this._idx + 1] : undefined;
1447
1448
  },
1448
- cycle: (...args) => args[index % args.length],
1449
+ cycle(...args) {
1450
+ return args[this._idx % args.length];
1451
+ },
1449
1452
  changed: (value) => {
1450
1453
  const changed = value !== lastCycleValue.value;
1451
1454
  lastCycleValue.value = value;
@@ -1523,18 +1526,19 @@ class Context {
1523
1526
  return;
1524
1527
  const length = items.length;
1525
1528
  forloop._idx = index;
1526
- forloop._items = items;
1529
+ if (forloop._items !== items)
1530
+ forloop._items = items;
1527
1531
  forloop.counter = index + 1;
1528
1532
  forloop.counter0 = index;
1529
- forloop.first = index === 0;
1530
- forloop.last = index === length - 1;
1531
1533
  forloop.index = index + 1;
1532
1534
  forloop.index0 = index;
1533
- forloop.revcounter = length - index;
1534
- forloop.revcounter0 = length - index - 1;
1535
- forloop.revindex = length - index;
1536
- forloop.revindex0 = length - index - 1;
1537
- forloop.cycle = (...args) => args[index % args.length];
1535
+ forloop.first = index === 0;
1536
+ forloop.last = index === length - 1;
1537
+ const revCount = length - index;
1538
+ forloop.revcounter = revCount;
1539
+ forloop.revcounter0 = revCount - 1;
1540
+ forloop.revindex = revCount;
1541
+ forloop.revindex0 = revCount - 1;
1538
1542
  }
1539
1543
  toObject() {
1540
1544
  const result = {};
@@ -2594,11 +2598,13 @@ class Runtime {
2594
2598
  return parts.join("");
2595
2599
  }
2596
2600
  renderNodeSync(node, ctx) {
2601
+ if (node.type === "Text") {
2602
+ return node.value;
2603
+ }
2604
+ if (node.type === "Output") {
2605
+ return this.stringify(this.eval(node.expression, ctx));
2606
+ }
2597
2607
  switch (node.type) {
2598
- case "Text":
2599
- return node.value;
2600
- case "Output":
2601
- return this.stringify(this.eval(node.expression, ctx));
2602
2608
  case "If":
2603
2609
  return this.renderIfSync(node, ctx);
2604
2610
  case "For":
@@ -2641,41 +2647,76 @@ class Runtime {
2641
2647
  if (len === 0) {
2642
2648
  return this.renderNodesSync(node.else_, ctx);
2643
2649
  }
2644
- const parts = new Array(len);
2645
2650
  ctx.push();
2646
2651
  ctx.pushForLoop(items, 0);
2652
+ let result;
2647
2653
  if (Array.isArray(node.target)) {
2648
2654
  const targets = node.target;
2649
2655
  const targetsLen = targets.length;
2650
- for (let i = 0;i < len; i++) {
2651
- const item = items[i];
2652
- if (i > 0)
2653
- ctx.updateForLoop(i, items);
2654
- let values;
2655
- if (Array.isArray(item)) {
2656
- values = item;
2657
- } else if (item && typeof item === "object" && (("0" in item) || ("key" in item))) {
2658
- values = [item[0] ?? item.key, item[1] ?? item.value];
2659
- } else {
2660
- values = [item, item];
2656
+ if (len < 50) {
2657
+ result = "";
2658
+ for (let i = 0;i < len; i++) {
2659
+ const item = items[i];
2660
+ if (i > 0)
2661
+ ctx.updateForLoop(i, items);
2662
+ let values;
2663
+ if (Array.isArray(item)) {
2664
+ values = item;
2665
+ } else if (item && typeof item === "object" && (("0" in item) || ("key" in item))) {
2666
+ values = [item[0] ?? item.key, item[1] ?? item.value];
2667
+ } else {
2668
+ values = [item, item];
2669
+ }
2670
+ for (let j = 0;j < targetsLen; j++) {
2671
+ ctx.set(targets[j], values[j]);
2672
+ }
2673
+ result += this.renderNodesSync(node.body, ctx);
2661
2674
  }
2662
- for (let j = 0;j < targetsLen; j++) {
2663
- ctx.set(targets[j], values[j]);
2675
+ } else {
2676
+ const parts = new Array(len);
2677
+ for (let i = 0;i < len; i++) {
2678
+ const item = items[i];
2679
+ if (i > 0)
2680
+ ctx.updateForLoop(i, items);
2681
+ let values;
2682
+ if (Array.isArray(item)) {
2683
+ values = item;
2684
+ } else if (item && typeof item === "object" && (("0" in item) || ("key" in item))) {
2685
+ values = [item[0] ?? item.key, item[1] ?? item.value];
2686
+ } else {
2687
+ values = [item, item];
2688
+ }
2689
+ for (let j = 0;j < targetsLen; j++) {
2690
+ ctx.set(targets[j], values[j]);
2691
+ }
2692
+ parts[i] = this.renderNodesSync(node.body, ctx);
2664
2693
  }
2665
- parts[i] = this.renderNodesSync(node.body, ctx);
2694
+ result = parts.join("");
2666
2695
  }
2667
2696
  } else {
2668
2697
  const target = node.target;
2669
- for (let i = 0;i < len; i++) {
2670
- if (i > 0)
2671
- ctx.updateForLoop(i, items);
2672
- ctx.set(target, items[i]);
2673
- parts[i] = this.renderNodesSync(node.body, ctx);
2698
+ if (len < 50) {
2699
+ result = "";
2700
+ for (let i = 0;i < len; i++) {
2701
+ if (i > 0)
2702
+ ctx.updateForLoop(i, items);
2703
+ ctx.set(target, items[i]);
2704
+ result += this.renderNodesSync(node.body, ctx);
2705
+ }
2706
+ } else {
2707
+ const parts = new Array(len);
2708
+ for (let i = 0;i < len; i++) {
2709
+ if (i > 0)
2710
+ ctx.updateForLoop(i, items);
2711
+ ctx.set(target, items[i]);
2712
+ parts[i] = this.renderNodesSync(node.body, ctx);
2713
+ }
2714
+ result = parts.join("");
2674
2715
  }
2675
2716
  }
2676
2717
  ctx.popForLoop();
2677
2718
  ctx.pop();
2678
- return parts.join("");
2719
+ return result;
2679
2720
  }
2680
2721
  renderBlockSync(node, ctx) {
2681
2722
  const blockToRender = this.blocks.get(node.name) || node;
@@ -2837,22 +2878,36 @@ class Runtime {
2837
2878
  return result;
2838
2879
  }
2839
2880
  renderNodesSync(nodes2, ctx) {
2881
+ const len = nodes2.length;
2882
+ if (len === 0)
2883
+ return "";
2884
+ if (len === 1) {
2885
+ return this.renderNodeSync(nodes2[0], ctx) ?? "";
2886
+ }
2887
+ if (len === 2) {
2888
+ const a = this.renderNodeSync(nodes2[0], ctx) ?? "";
2889
+ const b = this.renderNodeSync(nodes2[1], ctx) ?? "";
2890
+ return a + b;
2891
+ }
2840
2892
  const parts = [];
2841
- for (const node of nodes2) {
2842
- const result = this.renderNodeSync(node, ctx);
2893
+ for (let i = 0;i < len; i++) {
2894
+ const result = this.renderNodeSync(nodes2[i], ctx);
2843
2895
  if (result !== null)
2844
2896
  parts.push(result);
2845
2897
  }
2846
2898
  return parts.join("");
2847
2899
  }
2848
2900
  eval(node, ctx) {
2901
+ if (node.type === "Literal") {
2902
+ return node.value;
2903
+ }
2904
+ if (node.type === "Name") {
2905
+ return ctx.get(node.name);
2906
+ }
2907
+ if (node.type === "GetAttr") {
2908
+ return this.evalGetAttr(node, ctx);
2909
+ }
2849
2910
  switch (node.type) {
2850
- case "Literal":
2851
- return node.value;
2852
- case "Name":
2853
- return ctx.get(node.name);
2854
- case "GetAttr":
2855
- return this.evalGetAttr(node, ctx);
2856
2911
  case "GetItem":
2857
2912
  return this.evalGetItem(node, ctx);
2858
2913
  case "FilterExpr":
@@ -2888,13 +2943,13 @@ class Runtime {
2888
2943
  if (obj == null)
2889
2944
  return;
2890
2945
  const attr2 = node.attribute;
2891
- if (Array.isArray(obj)) {
2892
- const numIndex = parseInt(attr2, 10);
2893
- if (!isNaN(numIndex))
2894
- return obj[numIndex];
2895
- }
2896
2946
  const value = obj[attr2];
2897
- if (value === undefined && !(attr2 in Object(obj))) {
2947
+ if (value === undefined) {
2948
+ if (Array.isArray(obj)) {
2949
+ const numIndex = parseInt(attr2, 10);
2950
+ if (!isNaN(numIndex))
2951
+ return obj[numIndex];
2952
+ }
2898
2953
  return;
2899
2954
  }
2900
2955
  if (typeof value === "function") {
@@ -2923,22 +2978,32 @@ class Runtime {
2923
2978
  }
2924
2979
  evalBinaryOp(node, ctx) {
2925
2980
  const left = this.eval(node.left, ctx);
2926
- if (node.operator === "and")
2981
+ const op = node.operator;
2982
+ if (op === "and")
2927
2983
  return this.isTruthy(left) ? this.eval(node.right, ctx) : left;
2928
- if (node.operator === "or")
2984
+ if (op === "or")
2929
2985
  return this.isTruthy(left) ? left : this.eval(node.right, ctx);
2930
2986
  const right = this.eval(node.right, ctx);
2931
- switch (node.operator) {
2932
- case "+":
2933
- return typeof left === "string" || typeof right === "string" ? String(left) + String(right) : Number(left) + Number(right);
2987
+ if (op === "%") {
2988
+ if (typeof left === "number" && typeof right === "number") {
2989
+ return right === 0 ? NaN : left % right;
2990
+ }
2991
+ const r = Number(right);
2992
+ return r === 0 ? NaN : Number(left) % r;
2993
+ }
2994
+ if (op === "+") {
2995
+ if (typeof left === "number" && typeof right === "number") {
2996
+ return left + right;
2997
+ }
2998
+ return typeof left === "string" || typeof right === "string" ? String(left) + String(right) : Number(left) + Number(right);
2999
+ }
3000
+ switch (op) {
2934
3001
  case "-":
2935
3002
  return Number(left) - Number(right);
2936
3003
  case "*":
2937
3004
  return Number(left) * Number(right);
2938
3005
  case "/":
2939
3006
  return Number(left) / Number(right);
2940
- case "%":
2941
- return Number(right) === 0 ? NaN : Number(left) % Number(right);
2942
3007
  case "~":
2943
3008
  return String(left) + String(right);
2944
3009
  default:
@@ -2959,47 +3024,74 @@ class Runtime {
2959
3024
  }
2960
3025
  }
2961
3026
  evalCompare(node, ctx) {
2962
- let left = this.eval(node.left, ctx);
2963
- for (const { operator, right: rightNode } of node.ops) {
3027
+ const left = this.eval(node.left, ctx);
3028
+ const ops = node.ops;
3029
+ if (ops.length === 1) {
3030
+ const { operator, right: rightNode } = ops[0];
3031
+ const right = this.eval(rightNode, ctx);
3032
+ if (operator === "==")
3033
+ return left === right;
3034
+ if (operator === "!=")
3035
+ return left !== right;
3036
+ if (operator === "<")
3037
+ return left < right;
3038
+ if (operator === ">")
3039
+ return left > right;
3040
+ if (operator === "<=")
3041
+ return left <= right;
3042
+ if (operator === ">=")
3043
+ return left >= right;
3044
+ if (operator === "in")
3045
+ return this.isIn(left, right);
3046
+ if (operator === "not in")
3047
+ return !this.isIn(left, right);
3048
+ if (operator === "is")
3049
+ return left === right;
3050
+ if (operator === "is not")
3051
+ return left !== right;
3052
+ return false;
3053
+ }
3054
+ let current = left;
3055
+ for (const { operator, right: rightNode } of ops) {
2964
3056
  const right = this.eval(rightNode, ctx);
2965
3057
  let result;
2966
3058
  switch (operator) {
2967
3059
  case "==":
2968
- result = left === right;
3060
+ result = current === right;
2969
3061
  break;
2970
3062
  case "!=":
2971
- result = left !== right;
3063
+ result = current !== right;
2972
3064
  break;
2973
3065
  case "<":
2974
- result = left < right;
3066
+ result = current < right;
2975
3067
  break;
2976
3068
  case ">":
2977
- result = left > right;
3069
+ result = current > right;
2978
3070
  break;
2979
3071
  case "<=":
2980
- result = left <= right;
3072
+ result = current <= right;
2981
3073
  break;
2982
3074
  case ">=":
2983
- result = left >= right;
3075
+ result = current >= right;
2984
3076
  break;
2985
3077
  case "in":
2986
- result = this.isIn(left, right);
3078
+ result = this.isIn(current, right);
2987
3079
  break;
2988
3080
  case "not in":
2989
- result = !this.isIn(left, right);
3081
+ result = !this.isIn(current, right);
2990
3082
  break;
2991
3083
  case "is":
2992
- result = left === right;
3084
+ result = current === right;
2993
3085
  break;
2994
3086
  case "is not":
2995
- result = left !== right;
3087
+ result = current !== right;
2996
3088
  break;
2997
3089
  default:
2998
3090
  result = false;
2999
3091
  }
3000
3092
  if (!result)
3001
3093
  return false;
3002
- left = right;
3094
+ current = right;
3003
3095
  }
3004
3096
  return true;
3005
3097
  }
@@ -3205,25 +3297,29 @@ class Runtime {
3205
3297
  stringify(value) {
3206
3298
  if (value == null)
3207
3299
  return "";
3300
+ if (typeof value === "string") {
3301
+ if (value.__safe__)
3302
+ return value;
3303
+ return this.options.autoescape ? Bun.escapeHTML(value) : value;
3304
+ }
3208
3305
  if (typeof value === "boolean")
3209
3306
  return value ? "True" : "False";
3307
+ if (typeof value === "number")
3308
+ return String(value);
3210
3309
  const str = String(value);
3211
3310
  if (value.__safe__)
3212
3311
  return str;
3213
- if (this.options.autoescape) {
3214
- return Bun.escapeHTML(str);
3215
- }
3216
- return str;
3312
+ return this.options.autoescape ? Bun.escapeHTML(str) : str;
3217
3313
  }
3218
3314
  isTruthy(value) {
3219
- if (value == null)
3220
- return false;
3221
3315
  if (typeof value === "boolean")
3222
3316
  return value;
3223
- if (typeof value === "number")
3224
- return value !== 0;
3317
+ if (value == null)
3318
+ return false;
3225
3319
  if (typeof value === "string")
3226
3320
  return value.length > 0;
3321
+ if (typeof value === "number")
3322
+ return value !== 0;
3227
3323
  if (Array.isArray(value))
3228
3324
  return value.length > 0;
3229
3325
  if (typeof value === "object") {
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IAEd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;IAChC,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf;AAuDD,qBAAa,OAAO;IAElB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAyB;IAEhD,OAAO,CAAC,eAAe,CAAuB;IAE9C,OAAO,CAAC,aAAa,CAAqB;gBAG9B,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,GAAE,OAAO,GAAG,IAAW;IAMzE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAkBtB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ1B,IAAI,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IAK1C,GAAG,IAAI,IAAI;IAOX,OAAO,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO;IAKhD,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAYjD,UAAU,IAAI,IAAI;IAOlB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI;IAwBhD,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAehC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IAEd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;IAChC,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf;AAwDD,qBAAa,OAAO;IAElB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAyB;IAEhD,OAAO,CAAC,eAAe,CAAuB;IAE9C,OAAO,CAAC,aAAa,CAAqB;gBAG9B,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,MAAM,GAAE,OAAO,GAAG,IAAW;IAMzE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAkBtB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ1B,IAAI,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IAK1C,GAAG,IAAI,IAAI;IAOX,OAAO,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO;IAKhD,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAYjD,UAAU,IAAI,IAAI;IAQlB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI;IAiChD,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAehC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "binja",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "High-performance Jinja2/Django template engine for Bun",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",