tutuca 0.9.64 → 0.9.65
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/tutuca-cli.js +27 -11
- package/dist/tutuca-dev.js +46 -20
- package/dist/tutuca-dev.min.js +2 -2
- package/dist/tutuca-extra.js +30 -12
- package/dist/tutuca-extra.min.js +2 -2
- package/dist/tutuca.js +30 -12
- package/dist/tutuca.min.js +2 -2
- package/package.json +1 -1
- package/skill/tutuca/core.md +28 -5
- package/skill/tutuca/testing.md +6 -3
package/dist/tutuca.js
CHANGED
|
@@ -6383,7 +6383,7 @@ class IterInfo {
|
|
|
6383
6383
|
}
|
|
6384
6384
|
}
|
|
6385
6385
|
var filterAlwaysTrue = (_v, _k, _seq) => true;
|
|
6386
|
-
var nullLoopWith = (seq) => ({ seq });
|
|
6386
|
+
var nullLoopWith = (seq) => ({ iterData: { seq } });
|
|
6387
6387
|
var X_OP_CONSUMED = {
|
|
6388
6388
|
slot: new Set,
|
|
6389
6389
|
text: new Set,
|
|
@@ -7660,20 +7660,20 @@ class Renderer {
|
|
|
7660
7660
|
renderEach(stack, iterInfo, node, viewName) {
|
|
7661
7661
|
const { seq, filter, loopWith } = iterInfo.eval(stack);
|
|
7662
7662
|
const r = [];
|
|
7663
|
-
const iterData = loopWith.call(stack.it, seq);
|
|
7663
|
+
const { iterData, start, end } = unpackLoopResult(loopWith.call(stack.it, seq), seq);
|
|
7664
7664
|
getSeqInfo(seq)(seq, (key, value, attrName) => {
|
|
7665
7665
|
if (filter.call(stack.it, key, value, iterData)) {
|
|
7666
7666
|
const dom = this.renderIt(stack.enter(value, { key }, true), node, key, viewName);
|
|
7667
7667
|
this.pushEachEntry(r, node.nodeId, attrName, key, dom);
|
|
7668
7668
|
}
|
|
7669
|
-
});
|
|
7669
|
+
}, start, end);
|
|
7670
7670
|
return r;
|
|
7671
7671
|
}
|
|
7672
7672
|
renderEachWhen(stack, iterInfo, view, nid) {
|
|
7673
7673
|
const { seq, filter, loopWith, enricher } = iterInfo.eval(stack);
|
|
7674
7674
|
const r = [];
|
|
7675
7675
|
const it = stack.it;
|
|
7676
|
-
const iterData = loopWith.call(it, seq);
|
|
7676
|
+
const { iterData, start, end } = unpackLoopResult(loopWith.call(it, seq), seq);
|
|
7677
7677
|
getSeqInfo(seq)(seq, (key, value, attrName) => {
|
|
7678
7678
|
if (filter.call(it, key, value, iterData)) {
|
|
7679
7679
|
const cachePath = enricher ? [view, it, value] : [view, value];
|
|
@@ -7690,7 +7690,7 @@ class Renderer {
|
|
|
7690
7690
|
this.cache.set(cachePath, cacheKey, dom);
|
|
7691
7691
|
}
|
|
7692
7692
|
}
|
|
7693
|
-
});
|
|
7693
|
+
}, start, end);
|
|
7694
7694
|
return r;
|
|
7695
7695
|
}
|
|
7696
7696
|
renderView(view, stack) {
|
|
@@ -7712,14 +7712,32 @@ class Renderer {
|
|
|
7712
7712
|
}
|
|
7713
7713
|
}
|
|
7714
7714
|
var getSeqInfo = (seq) => isIndexed(seq) ? imIndexedIter : isKeyed(seq) ? imKeyedIter : seq?.[SEQ_INFO] ?? unkIter;
|
|
7715
|
-
var
|
|
7716
|
-
let
|
|
7717
|
-
|
|
7718
|
-
|
|
7715
|
+
var normalizeRange = (start, end, size) => {
|
|
7716
|
+
let s = start == null ? 0 : start < 0 ? size + start : start;
|
|
7717
|
+
let e = end == null ? size : end < 0 ? size + end : end;
|
|
7718
|
+
s = s < 0 ? 0 : s > size ? size : s;
|
|
7719
|
+
e = e < 0 ? 0 : e > size ? size : e;
|
|
7720
|
+
return [s, e < s ? s : e];
|
|
7721
|
+
};
|
|
7722
|
+
var unpackLoopResult = (result, seq) => {
|
|
7723
|
+
const r = result ?? {};
|
|
7724
|
+
return { iterData: r.iterData ?? { seq }, start: r.start, end: r.end };
|
|
7719
7725
|
};
|
|
7720
|
-
var
|
|
7721
|
-
|
|
7722
|
-
|
|
7726
|
+
var imIndexedIter = (seq, visit, start, end) => {
|
|
7727
|
+
const [s, e] = normalizeRange(start, end, seq.size);
|
|
7728
|
+
for (let i = s;i < e; i++)
|
|
7729
|
+
visit(i, seq.get(i), "si");
|
|
7730
|
+
};
|
|
7731
|
+
var imKeyedIter = (seq, visit, start, end) => {
|
|
7732
|
+
const [s, e] = normalizeRange(start, end, seq.size);
|
|
7733
|
+
let i = 0;
|
|
7734
|
+
for (const [k, v] of seq.toSeq().entries()) {
|
|
7735
|
+
if (i >= e)
|
|
7736
|
+
break;
|
|
7737
|
+
if (i >= s)
|
|
7738
|
+
visit(k, v, "sk");
|
|
7739
|
+
i++;
|
|
7740
|
+
}
|
|
7723
7741
|
};
|
|
7724
7742
|
var unkIter = () => {};
|
|
7725
7743
|
var SEQ_INFO = Symbol.for("tutuca.seqInfo");
|