@marko/runtime-tags 0.1.15 → 0.1.16

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.
@@ -0,0 +1,5 @@
1
+ type Falsy = undefined | null | false | 0 | "";
2
+ export declare function forIn<V extends {}>(obj: Falsy | V, cb: <K extends keyof V>(key: K, value: V[K]) => void): void;
3
+ export declare function forOf<T, V extends Iterable<T>>(list: Falsy | V, cb: (item: T, index: number) => void): void;
4
+ export declare function forTo(to: number, from: number | Falsy, step: number | Falsy, cb: (index: number) => void): void;
5
+ export {};
package/dist/debug/dom.js CHANGED
@@ -38,6 +38,9 @@ __export(dom_exports, {
38
38
  dynamicClosure: () => dynamicClosure,
39
39
  dynamicSubscribers: () => dynamicSubscribers,
40
40
  dynamicTagAttrs: () => dynamicTagAttrs,
41
+ forIn: () => forIn,
42
+ forOf: () => forOf,
43
+ forTo: () => forTo,
41
44
  getAbortSignal: () => getAbortSignal,
42
45
  html: () => html,
43
46
  inChild: () => inChild,
@@ -72,6 +75,28 @@ __export(dom_exports, {
72
75
  });
73
76
  module.exports = __toCommonJS(dom_exports);
74
77
 
78
+ // src/common/for.ts
79
+ function forIn(obj, cb) {
80
+ for (const key in obj) {
81
+ cb(key, obj[key]);
82
+ }
83
+ }
84
+ function forOf(list, cb) {
85
+ if (list) {
86
+ let i = 0;
87
+ for (const item of list) {
88
+ cb(item, i++);
89
+ }
90
+ }
91
+ }
92
+ function forTo(to, from, step, cb) {
93
+ const start = from || 0;
94
+ const delta = step || 1;
95
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++) {
96
+ cb(start + i * delta);
97
+ }
98
+ }
99
+
75
100
  // src/dom/scope.ts
76
101
  var debugID = 0;
77
102
  function createScope($global) {
@@ -1049,33 +1074,34 @@ var emptyMarkerArray = [
1049
1074
  var emptyMap = /* @__PURE__ */ new Map();
1050
1075
  var emptyArray = [];
1051
1076
  function loopOf(nodeAccessor, renderer) {
1052
- return loop(nodeAccessor, renderer, (value2, cb) => {
1053
- const [all, by = bySecondArg] = value2;
1054
- let i = 0;
1055
- for (const item of all) {
1056
- cb(by(item, i), [item, i, all]);
1057
- i++;
1077
+ return loop(
1078
+ nodeAccessor,
1079
+ renderer,
1080
+ ([all, by = bySecondArg], cb) => {
1081
+ if (typeof by === "string") {
1082
+ forOf(
1083
+ all,
1084
+ (item, i) => cb(item[by], [item, i])
1085
+ );
1086
+ } else {
1087
+ forOf(all, (item, i) => cb(by(item, i), [item, i]));
1088
+ }
1058
1089
  }
1059
- });
1090
+ );
1060
1091
  }
1061
1092
  function loopIn(nodeAccessor, renderer) {
1062
- return loop(nodeAccessor, renderer, (value2, cb) => {
1063
- const [all, by = byFirstArg] = value2;
1064
- for (const key in all) {
1065
- const v = all[key];
1066
- cb(by(key, v), [key, v, all]);
1067
- }
1068
- });
1093
+ return loop(
1094
+ nodeAccessor,
1095
+ renderer,
1096
+ ([obj, by = byFirstArg], cb) => forIn(obj, (key, value2) => cb(by(key, value2), [key, value2]))
1097
+ );
1069
1098
  }
1070
1099
  function loopTo(nodeAccessor, renderer) {
1071
- return loop(nodeAccessor, renderer, (value2, cb) => {
1072
- const [to, from = 0, step = 1, by = byFirstArg] = value2;
1073
- const steps = (to - from) / step;
1074
- for (let i = 0; i <= steps; i++) {
1075
- const v = from + i * step;
1076
- cb(by(v), [v]);
1077
- }
1078
- });
1100
+ return loop(
1101
+ nodeAccessor,
1102
+ renderer,
1103
+ ([to, from, step, by = byFirstArg], cb) => forTo(to, from, step, (v) => cb(by(v), [v]))
1104
+ );
1079
1105
  }
1080
1106
  function loop(nodeAccessor, renderer, forEach) {
1081
1107
  const loopScopeAccessor = nodeAccessor + "!" /* LoopScopeArray */;
@@ -1,3 +1,25 @@
1
+ // src/common/for.ts
2
+ function forIn(obj, cb) {
3
+ for (const key in obj) {
4
+ cb(key, obj[key]);
5
+ }
6
+ }
7
+ function forOf(list, cb) {
8
+ if (list) {
9
+ let i = 0;
10
+ for (const item of list) {
11
+ cb(item, i++);
12
+ }
13
+ }
14
+ }
15
+ function forTo(to, from, step, cb) {
16
+ const start = from || 0;
17
+ const delta = step || 1;
18
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++) {
19
+ cb(start + i * delta);
20
+ }
21
+ }
22
+
1
23
  // src/dom/scope.ts
2
24
  var debugID = 0;
3
25
  function createScope($global) {
@@ -975,33 +997,34 @@ var emptyMarkerArray = [
975
997
  var emptyMap = /* @__PURE__ */ new Map();
976
998
  var emptyArray = [];
977
999
  function loopOf(nodeAccessor, renderer) {
978
- return loop(nodeAccessor, renderer, (value2, cb) => {
979
- const [all, by = bySecondArg] = value2;
980
- let i = 0;
981
- for (const item of all) {
982
- cb(by(item, i), [item, i, all]);
983
- i++;
1000
+ return loop(
1001
+ nodeAccessor,
1002
+ renderer,
1003
+ ([all, by = bySecondArg], cb) => {
1004
+ if (typeof by === "string") {
1005
+ forOf(
1006
+ all,
1007
+ (item, i) => cb(item[by], [item, i])
1008
+ );
1009
+ } else {
1010
+ forOf(all, (item, i) => cb(by(item, i), [item, i]));
1011
+ }
984
1012
  }
985
- });
1013
+ );
986
1014
  }
987
1015
  function loopIn(nodeAccessor, renderer) {
988
- return loop(nodeAccessor, renderer, (value2, cb) => {
989
- const [all, by = byFirstArg] = value2;
990
- for (const key in all) {
991
- const v = all[key];
992
- cb(by(key, v), [key, v, all]);
993
- }
994
- });
1016
+ return loop(
1017
+ nodeAccessor,
1018
+ renderer,
1019
+ ([obj, by = byFirstArg], cb) => forIn(obj, (key, value2) => cb(by(key, value2), [key, value2]))
1020
+ );
995
1021
  }
996
1022
  function loopTo(nodeAccessor, renderer) {
997
- return loop(nodeAccessor, renderer, (value2, cb) => {
998
- const [to, from = 0, step = 1, by = byFirstArg] = value2;
999
- const steps = (to - from) / step;
1000
- for (let i = 0; i <= steps; i++) {
1001
- const v = from + i * step;
1002
- cb(by(v), [v]);
1003
- }
1004
- });
1023
+ return loop(
1024
+ nodeAccessor,
1025
+ renderer,
1026
+ ([to, from, step, by = byFirstArg], cb) => forTo(to, from, step, (v) => cb(by(v), [v]))
1027
+ );
1005
1028
  }
1006
1029
  function loop(nodeAccessor, renderer, forEach) {
1007
1030
  const loopScopeAccessor = nodeAccessor + "!" /* LoopScopeArray */;
@@ -1589,6 +1612,9 @@ export {
1589
1612
  dynamicClosure,
1590
1613
  dynamicSubscribers,
1591
1614
  dynamicTagAttrs,
1615
+ forIn,
1616
+ forOf,
1617
+ forTo,
1592
1618
  getAbortSignal,
1593
1619
  html,
1594
1620
  inChild,
@@ -32,6 +32,9 @@ __export(html_exports, {
32
32
  escapeScript: () => escapeScript,
33
33
  escapeStyle: () => escapeStyle,
34
34
  escapeXML: () => escapeXML,
35
+ forIn: () => forIn,
36
+ forOf: () => forOf,
37
+ forTo: () => forTo,
35
38
  fork: () => fork,
36
39
  getScopeById: () => getScopeById,
37
40
  getStreamData: () => getStreamData,
@@ -57,6 +60,28 @@ __export(html_exports, {
57
60
  });
58
61
  module.exports = __toCommonJS(html_exports);
59
62
 
63
+ // src/common/for.ts
64
+ function forIn(obj, cb) {
65
+ for (const key in obj) {
66
+ cb(key, obj[key]);
67
+ }
68
+ }
69
+ function forOf(list, cb) {
70
+ if (list) {
71
+ let i = 0;
72
+ for (const item of list) {
73
+ cb(item, i++);
74
+ }
75
+ }
76
+ }
77
+ function forTo(to, from, step, cb) {
78
+ const start = from || 0;
79
+ const delta = step || 1;
80
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++) {
81
+ cb(start + i * delta);
82
+ }
83
+ }
84
+
60
85
  // src/common/helpers.ts
61
86
  function classValue(value) {
62
87
  return toDelimitedString(value, " ", stringifyClassObject);
@@ -2351,6 +2376,9 @@ var ServerRenderResult = class {
2351
2376
  escapeScript,
2352
2377
  escapeStyle,
2353
2378
  escapeXML,
2379
+ forIn,
2380
+ forOf,
2381
+ forTo,
2354
2382
  fork,
2355
2383
  getScopeById,
2356
2384
  getStreamData,
@@ -1,3 +1,25 @@
1
+ // src/common/for.ts
2
+ function forIn(obj, cb) {
3
+ for (const key in obj) {
4
+ cb(key, obj[key]);
5
+ }
6
+ }
7
+ function forOf(list, cb) {
8
+ if (list) {
9
+ let i = 0;
10
+ for (const item of list) {
11
+ cb(item, i++);
12
+ }
13
+ }
14
+ }
15
+ function forTo(to, from, step, cb) {
16
+ const start = from || 0;
17
+ const delta = step || 1;
18
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++) {
19
+ cb(start + i * delta);
20
+ }
21
+ }
22
+
1
23
  // src/common/helpers.ts
2
24
  function classValue(value) {
3
25
  return toDelimitedString(value, " ", stringifyClassObject);
@@ -2291,6 +2313,9 @@ export {
2291
2313
  escapeScript,
2292
2314
  escapeStyle,
2293
2315
  escapeXML,
2316
+ forIn,
2317
+ forOf,
2318
+ forTo,
2294
2319
  fork,
2295
2320
  getScopeById,
2296
2321
  getStreamData,
@@ -8,7 +8,7 @@ export declare function setConditionalRenderer<ChildScope extends Scope>(scope:
8
8
  export declare let conditionalOnlyChild: (nodeAccessor: Accessor, fn?: (scope: Scope) => void, getIntersection?: () => IntersectionSignal) => ValueSignal<Renderer | string | undefined>;
9
9
  export declare function setConditionalRendererOnlyChild(scope: Scope, nodeAccessor: Accessor, newRenderer: Renderer | string | undefined): void;
10
10
  export declare const emptyMarkerArray: Scope[];
11
- export declare function loopOf(nodeAccessor: Accessor, renderer: Renderer): (scope: Scope, valueOrOp: [unknown, (...args: unknown[]) => unknown] | SignalOp) => void;
12
- export declare function loopIn(nodeAccessor: Accessor, renderer: Renderer): (scope: Scope, valueOrOp: [unknown, (...args: unknown[]) => unknown] | SignalOp) => void;
13
- export declare function loopTo(nodeAccessor: Accessor, renderer: Renderer): (scope: Scope, valueOrOp: [unknown, (...args: unknown[]) => unknown] | SignalOp) => void;
11
+ export declare function loopOf(nodeAccessor: Accessor, renderer: Renderer): (scope: Scope, valueOrOp: SignalOp | [all: unknown[], by?: ((item: unknown, index: number) => unknown) | undefined]) => void;
12
+ export declare function loopIn(nodeAccessor: Accessor, renderer: Renderer): (scope: Scope, valueOrOp: SignalOp | [obj: {}, by?: ((key: string, v: unknown) => unknown) | undefined]) => void;
13
+ export declare function loopTo(nodeAccessor: Accessor, renderer: Renderer): (scope: Scope, valueOrOp: SignalOp | [to: number, from: number, step: number, by?: ((v: number) => unknown) | undefined]) => void;
14
14
  export declare function inLoopScope(signal: IntersectionSignal, loopNodeAccessor: Accessor): (scope: Scope, op: SignalOp) => void;
package/dist/dom.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { forIn, forOf, forTo } from "./common/for";
1
2
  export type { Scope } from "./common/types";
2
3
  export { getAbortSignal, resetAbortSignal } from "./dom/abort-signal";
3
4
  export { compat } from "./dom/compat";
package/dist/dom.js CHANGED
@@ -35,6 +35,9 @@ __export(dom_exports, {
35
35
  dynamicClosure: () => dynamicClosure,
36
36
  dynamicSubscribers: () => dynamicSubscribers,
37
37
  dynamicTagAttrs: () => dynamicTagAttrs,
38
+ forIn: () => forIn,
39
+ forOf: () => forOf,
40
+ forTo: () => forTo,
38
41
  getAbortSignal: () => getAbortSignal,
39
42
  html: () => html,
40
43
  inChild: () => inChild,
@@ -69,6 +72,24 @@ __export(dom_exports, {
69
72
  });
70
73
  module.exports = __toCommonJS(dom_exports);
71
74
 
75
+ // src/common/for.ts
76
+ function forIn(obj, cb) {
77
+ for (let key in obj)
78
+ cb(key, obj[key]);
79
+ }
80
+ function forOf(list, cb) {
81
+ if (list) {
82
+ let i = 0;
83
+ for (let item of list)
84
+ cb(item, i++);
85
+ }
86
+ }
87
+ function forTo(to, from, step, cb) {
88
+ let start = from || 0, delta = step || 1;
89
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++)
90
+ cb(start + i * delta);
91
+ }
92
+
72
93
  // src/dom/scope.ts
73
94
  function createScope($global) {
74
95
  return {
@@ -668,29 +689,30 @@ var emptyMarkerMap = /* @__PURE__ */ new Map([[Symbol(), getEmptyScope(void 0)]]
668
689
  /* @__PURE__ */ getEmptyScope(void 0)
669
690
  ], emptyMap = /* @__PURE__ */ new Map(), emptyArray = [];
670
691
  function loopOf(nodeAccessor, renderer) {
671
- return loop(nodeAccessor, renderer, (value2, cb) => {
672
- let [all, by = bySecondArg] = value2, i = 0;
673
- for (let item of all)
674
- cb(by(item, i), [item, i, all]), i++;
675
- });
692
+ return loop(
693
+ nodeAccessor,
694
+ renderer,
695
+ ([all, by = bySecondArg], cb) => {
696
+ typeof by == "string" ? forOf(
697
+ all,
698
+ (item, i) => cb(item[by], [item, i])
699
+ ) : forOf(all, (item, i) => cb(by(item, i), [item, i]));
700
+ }
701
+ );
676
702
  }
677
703
  function loopIn(nodeAccessor, renderer) {
678
- return loop(nodeAccessor, renderer, (value2, cb) => {
679
- let [all, by = byFirstArg] = value2;
680
- for (let key in all) {
681
- let v = all[key];
682
- cb(by(key, v), [key, v, all]);
683
- }
684
- });
704
+ return loop(
705
+ nodeAccessor,
706
+ renderer,
707
+ ([obj, by = byFirstArg], cb) => forIn(obj, (key, value2) => cb(by(key, value2), [key, value2]))
708
+ );
685
709
  }
686
710
  function loopTo(nodeAccessor, renderer) {
687
- return loop(nodeAccessor, renderer, (value2, cb) => {
688
- let [to, from = 0, step = 1, by = byFirstArg] = value2, steps = (to - from) / step;
689
- for (let i = 0; i <= steps; i++) {
690
- let v = from + i * step;
691
- cb(by(v), [v]);
692
- }
693
- });
711
+ return loop(
712
+ nodeAccessor,
713
+ renderer,
714
+ ([to, from, step, by = byFirstArg], cb) => forTo(to, from, step, (v) => cb(by(v), [v]))
715
+ );
694
716
  }
695
717
  function loop(nodeAccessor, renderer, forEach) {
696
718
  let loopScopeAccessor = nodeAccessor + "!" /* LoopScopeArray */, closureSignals = renderer.c, params = renderer.e;
package/dist/dom.mjs CHANGED
@@ -1,3 +1,21 @@
1
+ // src/common/for.ts
2
+ function forIn(obj, cb) {
3
+ for (let key in obj)
4
+ cb(key, obj[key]);
5
+ }
6
+ function forOf(list, cb) {
7
+ if (list) {
8
+ let i = 0;
9
+ for (let item of list)
10
+ cb(item, i++);
11
+ }
12
+ }
13
+ function forTo(to, from, step, cb) {
14
+ let start = from || 0, delta = step || 1;
15
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++)
16
+ cb(start + i * delta);
17
+ }
18
+
1
19
  // src/dom/scope.ts
2
20
  function createScope($global) {
3
21
  return {
@@ -597,29 +615,30 @@ var emptyMarkerMap = /* @__PURE__ */ new Map([[Symbol(), getEmptyScope(void 0)]]
597
615
  /* @__PURE__ */ getEmptyScope(void 0)
598
616
  ], emptyMap = /* @__PURE__ */ new Map(), emptyArray = [];
599
617
  function loopOf(nodeAccessor, renderer) {
600
- return loop(nodeAccessor, renderer, (value2, cb) => {
601
- let [all, by = bySecondArg] = value2, i = 0;
602
- for (let item of all)
603
- cb(by(item, i), [item, i, all]), i++;
604
- });
618
+ return loop(
619
+ nodeAccessor,
620
+ renderer,
621
+ ([all, by = bySecondArg], cb) => {
622
+ typeof by == "string" ? forOf(
623
+ all,
624
+ (item, i) => cb(item[by], [item, i])
625
+ ) : forOf(all, (item, i) => cb(by(item, i), [item, i]));
626
+ }
627
+ );
605
628
  }
606
629
  function loopIn(nodeAccessor, renderer) {
607
- return loop(nodeAccessor, renderer, (value2, cb) => {
608
- let [all, by = byFirstArg] = value2;
609
- for (let key in all) {
610
- let v = all[key];
611
- cb(by(key, v), [key, v, all]);
612
- }
613
- });
630
+ return loop(
631
+ nodeAccessor,
632
+ renderer,
633
+ ([obj, by = byFirstArg], cb) => forIn(obj, (key, value2) => cb(by(key, value2), [key, value2]))
634
+ );
614
635
  }
615
636
  function loopTo(nodeAccessor, renderer) {
616
- return loop(nodeAccessor, renderer, (value2, cb) => {
617
- let [to, from = 0, step = 1, by = byFirstArg] = value2, steps = (to - from) / step;
618
- for (let i = 0; i <= steps; i++) {
619
- let v = from + i * step;
620
- cb(by(v), [v]);
621
- }
622
- });
637
+ return loop(
638
+ nodeAccessor,
639
+ renderer,
640
+ ([to, from, step, by = byFirstArg], cb) => forTo(to, from, step, (v) => cb(by(v), [v]))
641
+ );
623
642
  }
624
643
  function loop(nodeAccessor, renderer, forEach) {
625
644
  let loopScopeAccessor = nodeAccessor + "!" /* LoopScopeArray */, closureSignals = renderer.c, params = renderer.e;
@@ -993,6 +1012,9 @@ export {
993
1012
  dynamicClosure,
994
1013
  dynamicSubscribers,
995
1014
  dynamicTagAttrs,
1015
+ forIn,
1016
+ forOf,
1017
+ forTo,
996
1018
  getAbortSignal,
997
1019
  html,
998
1020
  inChild,
package/dist/html.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { forIn, forOf, forTo } from "./common/for";
1
2
  export { normalizeDynamicRenderer } from "./common/helpers";
2
3
  export { attr, attrs, classAttr, styleAttr } from "./html/attrs";
3
4
  export { compat } from "./html/compat";
package/dist/html.js CHANGED
@@ -29,6 +29,9 @@ __export(html_exports, {
29
29
  escapeScript: () => escapeScript,
30
30
  escapeStyle: () => escapeStyle,
31
31
  escapeXML: () => escapeXML,
32
+ forIn: () => forIn,
33
+ forOf: () => forOf,
34
+ forTo: () => forTo,
32
35
  fork: () => fork,
33
36
  getScopeById: () => getScopeById,
34
37
  getStreamData: () => getStreamData,
@@ -54,6 +57,24 @@ __export(html_exports, {
54
57
  });
55
58
  module.exports = __toCommonJS(html_exports);
56
59
 
60
+ // src/common/for.ts
61
+ function forIn(obj, cb) {
62
+ for (let key in obj)
63
+ cb(key, obj[key]);
64
+ }
65
+ function forOf(list, cb) {
66
+ if (list) {
67
+ let i = 0;
68
+ for (let item of list)
69
+ cb(item, i++);
70
+ }
71
+ }
72
+ function forTo(to, from, step, cb) {
73
+ let start = from || 0, delta = step || 1;
74
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++)
75
+ cb(start + i * delta);
76
+ }
77
+
57
78
  // src/common/helpers.ts
58
79
  function classValue(value) {
59
80
  return toDelimitedString(value, " ", stringifyClassObject);
@@ -1535,6 +1556,9 @@ var ServerRenderResult = class {
1535
1556
  escapeScript,
1536
1557
  escapeStyle,
1537
1558
  escapeXML,
1559
+ forIn,
1560
+ forOf,
1561
+ forTo,
1538
1562
  fork,
1539
1563
  getScopeById,
1540
1564
  getStreamData,
package/dist/html.mjs CHANGED
@@ -1,3 +1,21 @@
1
+ // src/common/for.ts
2
+ function forIn(obj, cb) {
3
+ for (let key in obj)
4
+ cb(key, obj[key]);
5
+ }
6
+ function forOf(list, cb) {
7
+ if (list) {
8
+ let i = 0;
9
+ for (let item of list)
10
+ cb(item, i++);
11
+ }
12
+ }
13
+ function forTo(to, from, step, cb) {
14
+ let start = from || 0, delta = step || 1;
15
+ for (let steps = (to - start) / delta, i = 0; i <= steps; i++)
16
+ cb(start + i * delta);
17
+ }
18
+
1
19
  // src/common/helpers.ts
2
20
  function classValue(value) {
3
21
  return toDelimitedString(value, " ", stringifyClassObject);
@@ -1478,6 +1496,9 @@ export {
1478
1496
  escapeScript,
1479
1497
  escapeStyle,
1480
1498
  escapeXML,
1499
+ forIn,
1500
+ forOf,
1501
+ forTo,
1481
1502
  fork,
1482
1503
  getScopeById,
1483
1504
  getStreamData,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marko/runtime-tags",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "description": "Optimized runtime for Marko templates.",
5
5
  "keywords": [
6
6
  "api",