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-extra.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,
|
|
@@ -8099,20 +8099,20 @@ class Renderer {
|
|
|
8099
8099
|
renderEach(stack, iterInfo, node, viewName) {
|
|
8100
8100
|
const { seq, filter, loopWith } = iterInfo.eval(stack);
|
|
8101
8101
|
const r = [];
|
|
8102
|
-
const iterData = loopWith.call(stack.it, seq);
|
|
8102
|
+
const { iterData, start, end } = unpackLoopResult(loopWith.call(stack.it, seq), seq);
|
|
8103
8103
|
getSeqInfo(seq)(seq, (key, value, attrName) => {
|
|
8104
8104
|
if (filter.call(stack.it, key, value, iterData)) {
|
|
8105
8105
|
const dom = this.renderIt(stack.enter(value, { key }, true), node, key, viewName);
|
|
8106
8106
|
this.pushEachEntry(r, node.nodeId, attrName, key, dom);
|
|
8107
8107
|
}
|
|
8108
|
-
});
|
|
8108
|
+
}, start, end);
|
|
8109
8109
|
return r;
|
|
8110
8110
|
}
|
|
8111
8111
|
renderEachWhen(stack, iterInfo, view, nid) {
|
|
8112
8112
|
const { seq, filter, loopWith, enricher } = iterInfo.eval(stack);
|
|
8113
8113
|
const r = [];
|
|
8114
8114
|
const it = stack.it;
|
|
8115
|
-
const iterData = loopWith.call(it, seq);
|
|
8115
|
+
const { iterData, start, end } = unpackLoopResult(loopWith.call(it, seq), seq);
|
|
8116
8116
|
getSeqInfo(seq)(seq, (key, value, attrName) => {
|
|
8117
8117
|
if (filter.call(it, key, value, iterData)) {
|
|
8118
8118
|
const cachePath = enricher ? [view, it, value] : [view, value];
|
|
@@ -8129,7 +8129,7 @@ class Renderer {
|
|
|
8129
8129
|
this.cache.set(cachePath, cacheKey, dom);
|
|
8130
8130
|
}
|
|
8131
8131
|
}
|
|
8132
|
-
});
|
|
8132
|
+
}, start, end);
|
|
8133
8133
|
return r;
|
|
8134
8134
|
}
|
|
8135
8135
|
renderView(view, stack) {
|
|
@@ -8151,14 +8151,32 @@ class Renderer {
|
|
|
8151
8151
|
}
|
|
8152
8152
|
}
|
|
8153
8153
|
var getSeqInfo = (seq) => isIndexed(seq) ? imIndexedIter : isKeyed(seq) ? imKeyedIter : seq?.[SEQ_INFO] ?? unkIter;
|
|
8154
|
-
var
|
|
8155
|
-
let
|
|
8156
|
-
|
|
8157
|
-
|
|
8154
|
+
var normalizeRange = (start, end, size) => {
|
|
8155
|
+
let s = start == null ? 0 : start < 0 ? size + start : start;
|
|
8156
|
+
let e = end == null ? size : end < 0 ? size + end : end;
|
|
8157
|
+
s = s < 0 ? 0 : s > size ? size : s;
|
|
8158
|
+
e = e < 0 ? 0 : e > size ? size : e;
|
|
8159
|
+
return [s, e < s ? s : e];
|
|
8160
|
+
};
|
|
8161
|
+
var unpackLoopResult = (result, seq) => {
|
|
8162
|
+
const r = result ?? {};
|
|
8163
|
+
return { iterData: r.iterData ?? { seq }, start: r.start, end: r.end };
|
|
8158
8164
|
};
|
|
8159
|
-
var
|
|
8160
|
-
|
|
8161
|
-
|
|
8165
|
+
var imIndexedIter = (seq, visit, start, end) => {
|
|
8166
|
+
const [s, e] = normalizeRange(start, end, seq.size);
|
|
8167
|
+
for (let i = s;i < e; i++)
|
|
8168
|
+
visit(i, seq.get(i), "si");
|
|
8169
|
+
};
|
|
8170
|
+
var imKeyedIter = (seq, visit, start, end) => {
|
|
8171
|
+
const [s, e] = normalizeRange(start, end, seq.size);
|
|
8172
|
+
let i = 0;
|
|
8173
|
+
for (const [k, v] of seq.toSeq().entries()) {
|
|
8174
|
+
if (i >= e)
|
|
8175
|
+
break;
|
|
8176
|
+
if (i >= s)
|
|
8177
|
+
visit(k, v, "sk");
|
|
8178
|
+
i++;
|
|
8179
|
+
}
|
|
8162
8180
|
};
|
|
8163
8181
|
var unkIter = () => {};
|
|
8164
8182
|
var SEQ_INFO = Symbol.for("tutuca.seqInfo");
|