@barefootjs/jsx 0.6.0 → 0.7.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/dist/adapters/parsed-expr-emitter.d.ts +14 -1
- package/dist/adapters/parsed-expr-emitter.d.ts.map +1 -1
- package/dist/expression-parser.d.ts +137 -0
- package/dist/expression-parser.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +335 -5
- package/dist/ir-to-client-js/collect-elements.d.ts.map +1 -1
- package/dist/ir-to-client-js/plan/build-static-array-child-init.d.ts +4 -0
- package/dist/ir-to-client-js/plan/build-static-array-child-init.d.ts.map +1 -1
- package/dist/ir-to-client-js/plan/static-array-child-init.d.ts +46 -2
- package/dist/ir-to-client-js/plan/static-array-child-init.d.ts.map +1 -1
- package/dist/ir-to-client-js/stringify/static-array-child-init.d.ts.map +1 -1
- package/dist/ir-to-client-js/types.d.ts +8 -1
- package/dist/ir-to-client-js/types.d.ts.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/__snapshots__/doc-examples.test.ts.snap +7 -7
- package/src/__tests__/child-components-in-map.test.ts +84 -0
- package/src/__tests__/client-js-generation.test.ts +51 -0
- package/src/__tests__/compiler-stress-1244.test.ts +43 -0
- package/src/__tests__/expression-parser.test.ts +109 -1
- package/src/__tests__/foreach-client-only.test.ts +80 -0
- package/src/__tests__/ir-async.test.ts +64 -0
- package/src/__tests__/ir-dynamic-tag.test.ts +104 -0
- package/src/__tests__/ir-reduce-op.test.ts +51 -0
- package/src/__tests__/reduce-op.test.ts +201 -0
- package/src/adapters/parsed-expr-emitter.ts +43 -1
- package/src/expression-parser.ts +570 -4
- package/src/index.ts +1 -1
- package/src/ir-to-client-js/collect-elements.ts +27 -4
- package/src/ir-to-client-js/plan/build-static-array-child-init.ts +55 -1
- package/src/ir-to-client-js/plan/static-array-child-init.ts +47 -1
- package/src/ir-to-client-js/stringify/static-array-child-init.ts +69 -0
- package/src/ir-to-client-js/types.ts +8 -1
- package/src/jsx-to-ir.ts +69 -0
- package/src/types.ts +9 -0
package/dist/index.js
CHANGED
|
@@ -5339,7 +5339,6 @@ var UNSUPPORTED_METHODS = new Set([
|
|
|
5339
5339
|
"some",
|
|
5340
5340
|
"forEach",
|
|
5341
5341
|
"flatMap",
|
|
5342
|
-
"flat",
|
|
5343
5342
|
"replaceAll",
|
|
5344
5343
|
"charAt",
|
|
5345
5344
|
"charCodeAt",
|
|
@@ -5351,6 +5350,9 @@ var UNSUPPORTED_METHODS = new Set([
|
|
|
5351
5350
|
"matchAll",
|
|
5352
5351
|
"search"
|
|
5353
5352
|
]);
|
|
5353
|
+
var UNSUPPORTED_METHOD_REASONS = {
|
|
5354
|
+
forEach: `'.forEach()' returns undefined and has no template-position meaning. ` + `Use it for side effects inside an event handler or createEffect callback ` + `(client JS), or use '.map(...)' if you meant to render each item.`
|
|
5355
|
+
};
|
|
5354
5356
|
var LOWERED_ARRAY_METHODS = new Set([
|
|
5355
5357
|
"includes",
|
|
5356
5358
|
"indexOf",
|
|
@@ -5438,6 +5440,32 @@ function convertNode(node, raw) {
|
|
|
5438
5440
|
if (callee.property === "reverse" || callee.property === "toReversed") {
|
|
5439
5441
|
return { kind: "array-method", method: callee.property, object: callee.object, args };
|
|
5440
5442
|
}
|
|
5443
|
+
if (callee.property === "flat") {
|
|
5444
|
+
const depthNode = node.arguments[0];
|
|
5445
|
+
let flatDepth;
|
|
5446
|
+
if (depthNode === undefined) {
|
|
5447
|
+
flatDepth = 1;
|
|
5448
|
+
} else if (ts8.isIdentifier(depthNode) && depthNode.text === "Infinity") {
|
|
5449
|
+
flatDepth = "infinity";
|
|
5450
|
+
} else {
|
|
5451
|
+
let n;
|
|
5452
|
+
if (ts8.isNumericLiteral(depthNode)) {
|
|
5453
|
+
n = Number(depthNode.text);
|
|
5454
|
+
} else if (ts8.isPrefixUnaryExpression(depthNode) && depthNode.operator === ts8.SyntaxKind.MinusToken && ts8.isNumericLiteral(depthNode.operand)) {
|
|
5455
|
+
n = -Number(depthNode.operand.text);
|
|
5456
|
+
}
|
|
5457
|
+
if (n === undefined || Number.isNaN(n)) {
|
|
5458
|
+
return {
|
|
5459
|
+
kind: "unsupported",
|
|
5460
|
+
raw,
|
|
5461
|
+
reason: `\`.flat(depth)\` needs a literal integer or \`Infinity\` depth — a computed depth can't be resolved at template time. Use a literal depth, or pre-compute the value before the template.`
|
|
5462
|
+
};
|
|
5463
|
+
}
|
|
5464
|
+
const truncated = Math.trunc(n);
|
|
5465
|
+
flatDepth = truncated < 0 ? 0 : truncated;
|
|
5466
|
+
}
|
|
5467
|
+
return { kind: "array-method", method: "flat", object: callee.object, args: [], flatDepth };
|
|
5468
|
+
}
|
|
5441
5469
|
if (callee.property === "toLowerCase") {
|
|
5442
5470
|
return { kind: "array-method", method: "toLowerCase", object: callee.object, args };
|
|
5443
5471
|
}
|
|
@@ -5521,6 +5549,50 @@ function convertNode(node, raw) {
|
|
|
5521
5549
|
` + `(reverse the operands for descending order). ` + `Wrap the call in /* @client */ to evaluate at hydration.`
|
|
5522
5550
|
};
|
|
5523
5551
|
}
|
|
5552
|
+
if ((callee.property === "reduce" || callee.property === "reduceRight") && node.arguments.length === 2) {
|
|
5553
|
+
const reduceOp = extractReduceOpFromTS(node.arguments[0], node.arguments[1]);
|
|
5554
|
+
if (reduceOp) {
|
|
5555
|
+
return {
|
|
5556
|
+
kind: "array-method",
|
|
5557
|
+
method: callee.property,
|
|
5558
|
+
object: callee.object,
|
|
5559
|
+
args: [],
|
|
5560
|
+
reduceOp
|
|
5561
|
+
};
|
|
5562
|
+
}
|
|
5563
|
+
const m = callee.property;
|
|
5564
|
+
return {
|
|
5565
|
+
kind: "unsupported",
|
|
5566
|
+
raw,
|
|
5567
|
+
reason: `Reduce shape not supported. Accepted (arithmetic fold, explicit init):
|
|
5568
|
+
` + ` arr.${m}((acc, x) => acc + x, 0)
|
|
5569
|
+
` + ` arr.${m}((acc, x) => acc + x.field, 0)
|
|
5570
|
+
` + ` arr.${m}((acc, x) => acc * x.field, 1)
|
|
5571
|
+
` + ` arr.${m}((acc, x) => acc + x.field, '') (string concat)
|
|
5572
|
+
` + `The accumulator must be the left operand and the initial ` + `value a number / string literal. ` + `Wrap the call in /* @client */ to evaluate at hydration.`
|
|
5573
|
+
};
|
|
5574
|
+
}
|
|
5575
|
+
if (callee.property === "flatMap") {
|
|
5576
|
+
const flatMapOp = node.arguments.length === 1 ? extractFlatMapOpFromTS(node.arguments[0]) : null;
|
|
5577
|
+
if (flatMapOp) {
|
|
5578
|
+
return {
|
|
5579
|
+
kind: "array-method",
|
|
5580
|
+
method: "flatMap",
|
|
5581
|
+
object: callee.object,
|
|
5582
|
+
args: [],
|
|
5583
|
+
flatMapOp
|
|
5584
|
+
};
|
|
5585
|
+
}
|
|
5586
|
+
return {
|
|
5587
|
+
kind: "unsupported",
|
|
5588
|
+
raw,
|
|
5589
|
+
reason: `flatMap shape not supported. Accepted (self / field leaves, no thisArg):
|
|
5590
|
+
` + ` arr.flatMap(i => i) (flatten one level)
|
|
5591
|
+
` + ` arr.flatMap(i => i.field) (flatten a per-item array field)
|
|
5592
|
+
` + ` arr.flatMap(i => [i.a, i.b]) (gather per-item fields)
|
|
5593
|
+
` + `Richer callbacks (computed / nested access, arithmetic, calls, ` + `literal elements) and the 2-arg \`flatMap(fn, thisArg)\` form ` + `aren't lowered. Wrap the call in /* @client */ to evaluate at hydration.`
|
|
5594
|
+
};
|
|
5595
|
+
}
|
|
5524
5596
|
}
|
|
5525
5597
|
return { kind: "call", callee, args };
|
|
5526
5598
|
}
|
|
@@ -5839,6 +5911,119 @@ function classifySortOperand(expr, paramA, paramB) {
|
|
|
5839
5911
|
}
|
|
5840
5912
|
return null;
|
|
5841
5913
|
}
|
|
5914
|
+
function extractReduceOpFromTS(reducerNode, initNode) {
|
|
5915
|
+
const init = classifyReduceInit(initNode);
|
|
5916
|
+
if (!init)
|
|
5917
|
+
return null;
|
|
5918
|
+
if (!ts8.isArrowFunction(reducerNode) && !ts8.isFunctionExpression(reducerNode))
|
|
5919
|
+
return null;
|
|
5920
|
+
if (reducerNode.parameters.length !== 2)
|
|
5921
|
+
return null;
|
|
5922
|
+
const pAcc = reducerNode.parameters[0];
|
|
5923
|
+
const pItem = reducerNode.parameters[1];
|
|
5924
|
+
if (!ts8.isIdentifier(pAcc.name) || !ts8.isIdentifier(pItem.name))
|
|
5925
|
+
return null;
|
|
5926
|
+
const paramAcc = pAcc.name.text;
|
|
5927
|
+
const paramItem = pItem.name.text;
|
|
5928
|
+
let body;
|
|
5929
|
+
if (ts8.isArrowFunction(reducerNode) && !ts8.isBlock(reducerNode.body)) {
|
|
5930
|
+
body = reducerNode.body;
|
|
5931
|
+
} else {
|
|
5932
|
+
const block = reducerNode.body;
|
|
5933
|
+
const stmts = block.statements;
|
|
5934
|
+
if (stmts.length !== 1 || !ts8.isReturnStatement(stmts[0]) || !stmts[0].expression)
|
|
5935
|
+
return null;
|
|
5936
|
+
body = stmts[0].expression;
|
|
5937
|
+
}
|
|
5938
|
+
const raw = body.getText();
|
|
5939
|
+
const expr = unwrapParens(body);
|
|
5940
|
+
if (!ts8.isBinaryExpression(expr))
|
|
5941
|
+
return null;
|
|
5942
|
+
let op;
|
|
5943
|
+
if (expr.operatorToken.kind === ts8.SyntaxKind.PlusToken)
|
|
5944
|
+
op = "+";
|
|
5945
|
+
else if (expr.operatorToken.kind === ts8.SyntaxKind.AsteriskToken)
|
|
5946
|
+
op = "*";
|
|
5947
|
+
else
|
|
5948
|
+
return null;
|
|
5949
|
+
const left = unwrapParens(expr.left);
|
|
5950
|
+
if (!ts8.isIdentifier(left) || left.text !== paramAcc)
|
|
5951
|
+
return null;
|
|
5952
|
+
const key = classifyReduceKey(unwrapParens(expr.right), paramItem);
|
|
5953
|
+
if (!key)
|
|
5954
|
+
return null;
|
|
5955
|
+
const type = init.type;
|
|
5956
|
+
if (type === "string" && op !== "+")
|
|
5957
|
+
return null;
|
|
5958
|
+
return { op, key, type, init: init.value, raw, paramAcc, paramItem };
|
|
5959
|
+
}
|
|
5960
|
+
function extractFlatMapOpFromTS(cbNode) {
|
|
5961
|
+
if (!ts8.isArrowFunction(cbNode) && !ts8.isFunctionExpression(cbNode))
|
|
5962
|
+
return null;
|
|
5963
|
+
if (cbNode.parameters.length !== 1)
|
|
5964
|
+
return null;
|
|
5965
|
+
const p = cbNode.parameters[0];
|
|
5966
|
+
if (!ts8.isIdentifier(p.name))
|
|
5967
|
+
return null;
|
|
5968
|
+
const param = p.name.text;
|
|
5969
|
+
let body;
|
|
5970
|
+
if (ts8.isArrowFunction(cbNode) && !ts8.isBlock(cbNode.body)) {
|
|
5971
|
+
body = cbNode.body;
|
|
5972
|
+
} else {
|
|
5973
|
+
const block = cbNode.body;
|
|
5974
|
+
const stmts = block.statements;
|
|
5975
|
+
if (stmts.length !== 1 || !ts8.isReturnStatement(stmts[0]) || !stmts[0].expression)
|
|
5976
|
+
return null;
|
|
5977
|
+
body = stmts[0].expression;
|
|
5978
|
+
}
|
|
5979
|
+
const raw = body.getText();
|
|
5980
|
+
const inner = unwrapParens(body);
|
|
5981
|
+
if (ts8.isArrayLiteralExpression(inner)) {
|
|
5982
|
+
if (inner.elements.length === 0)
|
|
5983
|
+
return null;
|
|
5984
|
+
const elements = [];
|
|
5985
|
+
for (const el of inner.elements) {
|
|
5986
|
+
if (ts8.isSpreadElement(el) || ts8.isOmittedExpression(el))
|
|
5987
|
+
return null;
|
|
5988
|
+
const leaf2 = classifyReduceKey(unwrapParens(el), param);
|
|
5989
|
+
if (!leaf2)
|
|
5990
|
+
return null;
|
|
5991
|
+
elements.push(leaf2);
|
|
5992
|
+
}
|
|
5993
|
+
return { projection: { kind: "tuple", elements }, param, raw };
|
|
5994
|
+
}
|
|
5995
|
+
const leaf = classifyReduceKey(inner, param);
|
|
5996
|
+
if (!leaf)
|
|
5997
|
+
return null;
|
|
5998
|
+
return { projection: leaf, param, raw };
|
|
5999
|
+
}
|
|
6000
|
+
function classifyReduceKey(expr, paramItem) {
|
|
6001
|
+
if (ts8.isIdentifier(expr)) {
|
|
6002
|
+
return expr.text === paramItem ? { kind: "self" } : null;
|
|
6003
|
+
}
|
|
6004
|
+
if (ts8.isPropertyAccessExpression(expr) && ts8.isIdentifier(expr.expression)) {
|
|
6005
|
+
if (expr.expression.text === paramItem)
|
|
6006
|
+
return { kind: "field", field: expr.name.text };
|
|
6007
|
+
}
|
|
6008
|
+
return null;
|
|
6009
|
+
}
|
|
6010
|
+
function classifyReduceInit(node) {
|
|
6011
|
+
let n = unwrapParens(node);
|
|
6012
|
+
if (ts8.isPrefixUnaryExpression(n) && n.operator === ts8.SyntaxKind.MinusToken) {
|
|
6013
|
+
if (ts8.isNumericLiteral(n.operand))
|
|
6014
|
+
return { type: "numeric", value: "-" + n.operand.text };
|
|
6015
|
+
return null;
|
|
6016
|
+
}
|
|
6017
|
+
if (ts8.isNumericLiteral(n))
|
|
6018
|
+
return { type: "numeric", value: n.text };
|
|
6019
|
+
if (ts8.isStringLiteral(n)) {
|
|
6020
|
+
const raw = n.getText();
|
|
6021
|
+
if (raw.length < 2 || raw.slice(1, -1) !== n.text)
|
|
6022
|
+
return null;
|
|
6023
|
+
return { type: "string", value: n.text };
|
|
6024
|
+
}
|
|
6025
|
+
return null;
|
|
6026
|
+
}
|
|
5842
6027
|
function collectDestructureBindings(pattern, pathPrefix, fieldMap, raw, excludedTopKeys) {
|
|
5843
6028
|
let restName;
|
|
5844
6029
|
for (const el of pattern.elements) {
|
|
@@ -6147,6 +6332,15 @@ function substituteDestructuredFields(expr, fieldMap, syntheticParam, restName)
|
|
|
6147
6332
|
if (e.method === "sort" || e.method === "toSorted") {
|
|
6148
6333
|
return { kind: "array-method", method: e.method, object: walk(e.object), args: [], comparator: e.comparator };
|
|
6149
6334
|
}
|
|
6335
|
+
if (e.method === "reduce" || e.method === "reduceRight") {
|
|
6336
|
+
return { kind: "array-method", method: e.method, object: walk(e.object), args: [], reduceOp: e.reduceOp };
|
|
6337
|
+
}
|
|
6338
|
+
if (e.method === "flat") {
|
|
6339
|
+
return { kind: "array-method", method: "flat", object: walk(e.object), args: [], flatDepth: e.flatDepth };
|
|
6340
|
+
}
|
|
6341
|
+
if (e.method === "flatMap") {
|
|
6342
|
+
return { kind: "array-method", method: "flatMap", object: walk(e.object), args: [], flatMapOp: e.flatMapOp };
|
|
6343
|
+
}
|
|
6150
6344
|
return { kind: "array-method", method: e.method, object: walk(e.object), args: e.args.map(walk) };
|
|
6151
6345
|
case "literal":
|
|
6152
6346
|
case "unsupported":
|
|
@@ -6267,7 +6461,8 @@ function checkSupport(expr) {
|
|
|
6267
6461
|
return {
|
|
6268
6462
|
supported: false,
|
|
6269
6463
|
level: "L5_UNSUPPORTED",
|
|
6270
|
-
|
|
6464
|
+
selfContained: true,
|
|
6465
|
+
reason: UNSUPPORTED_METHOD_REASONS[methodName] ?? `'${methodName}()' can't render on the server. Pre-compute the value, or add /* @client */ for client-only (no SSR).`
|
|
6271
6466
|
};
|
|
6272
6467
|
}
|
|
6273
6468
|
}
|
|
@@ -6491,6 +6686,20 @@ function exprToString(expr) {
|
|
|
6491
6686
|
const { paramA, paramB, raw } = expr.comparator;
|
|
6492
6687
|
return `${exprToString(expr.object)}.${expr.method}((${paramA},${paramB}) => ${raw})`;
|
|
6493
6688
|
}
|
|
6689
|
+
if (expr.method === "reduce" || expr.method === "reduceRight") {
|
|
6690
|
+
const { paramAcc, paramItem, raw, type, init } = expr.reduceOp;
|
|
6691
|
+
const initSrc = type === "string" ? JSON.stringify(init) : init;
|
|
6692
|
+
return `${exprToString(expr.object)}.${expr.method}((${paramAcc},${paramItem}) => ${raw}, ${initSrc})`;
|
|
6693
|
+
}
|
|
6694
|
+
if (expr.method === "flat") {
|
|
6695
|
+
const d = expr.flatDepth;
|
|
6696
|
+
const depthSrc = d === "infinity" ? "Infinity" : String(d);
|
|
6697
|
+
return `${exprToString(expr.object)}.flat(${d === 1 ? "" : depthSrc})`;
|
|
6698
|
+
}
|
|
6699
|
+
if (expr.method === "flatMap") {
|
|
6700
|
+
const { param, raw } = expr.flatMapOp;
|
|
6701
|
+
return `${exprToString(expr.object)}.flatMap(${param} => ${raw})`;
|
|
6702
|
+
}
|
|
6494
6703
|
return `${exprToString(expr.object)}.${expr.method}(${expr.args.map(exprToString).join(", ")})`;
|
|
6495
6704
|
case "unsupported":
|
|
6496
6705
|
return `[UNSUPPORTED: ${expr.raw}]`;
|
|
@@ -6536,6 +6745,20 @@ function stringifyParsedExpr(expr) {
|
|
|
6536
6745
|
const { paramA, paramB, raw } = expr.comparator;
|
|
6537
6746
|
return `${stringifyParsedExpr(expr.object)}.${expr.method}((${paramA},${paramB}) => ${raw})`;
|
|
6538
6747
|
}
|
|
6748
|
+
if (expr.method === "reduce" || expr.method === "reduceRight") {
|
|
6749
|
+
const { paramAcc, paramItem, raw, type, init } = expr.reduceOp;
|
|
6750
|
+
const initSrc = type === "string" ? JSON.stringify(init) : init;
|
|
6751
|
+
return `${stringifyParsedExpr(expr.object)}.${expr.method}((${paramAcc},${paramItem}) => ${raw}, ${initSrc})`;
|
|
6752
|
+
}
|
|
6753
|
+
if (expr.method === "flat") {
|
|
6754
|
+
const d = expr.flatDepth;
|
|
6755
|
+
const depthSrc = d === "infinity" ? "Infinity" : String(d);
|
|
6756
|
+
return `${stringifyParsedExpr(expr.object)}.flat(${d === 1 ? "" : depthSrc})`;
|
|
6757
|
+
}
|
|
6758
|
+
if (expr.method === "flatMap") {
|
|
6759
|
+
const { param, raw } = expr.flatMapOp;
|
|
6760
|
+
return `${stringifyParsedExpr(expr.object)}.flatMap(${param} => ${raw})`;
|
|
6761
|
+
}
|
|
6539
6762
|
return `${stringifyParsedExpr(expr.object)}.${expr.method}(${expr.args.map(stringifyParsedExpr).join(", ")})`;
|
|
6540
6763
|
case "unsupported":
|
|
6541
6764
|
return expr.raw;
|
|
@@ -7361,6 +7584,7 @@ function transformComponentElement(node, ctx, name) {
|
|
|
7361
7584
|
children,
|
|
7362
7585
|
template: name.toLowerCase(),
|
|
7363
7586
|
slotId,
|
|
7587
|
+
...isDynamicTagLocal(name, ctx) ? { dynamicTag: true } : {},
|
|
7364
7588
|
loc: getSourceLocation(node, ctx.sourceFile, ctx.filePath)
|
|
7365
7589
|
};
|
|
7366
7590
|
}
|
|
@@ -7376,6 +7600,7 @@ function transformSelfClosingComponent(node, ctx, name) {
|
|
|
7376
7600
|
children: [],
|
|
7377
7601
|
template: name.toLowerCase(),
|
|
7378
7602
|
slotId,
|
|
7603
|
+
...isDynamicTagLocal(name, ctx) ? { dynamicTag: true } : {},
|
|
7379
7604
|
loc: getSourceLocation(node, ctx.sourceFile, ctx.filePath)
|
|
7380
7605
|
};
|
|
7381
7606
|
}
|
|
@@ -9068,6 +9293,40 @@ function findLocalConst(name, ctx) {
|
|
|
9068
9293
|
const pool = fnScoped.length > 0 ? fnScoped : matches;
|
|
9069
9294
|
return pool[pool.length - 1];
|
|
9070
9295
|
}
|
|
9296
|
+
function isDynamicTagLocal(name, ctx) {
|
|
9297
|
+
if (!hasDynamicTagBinding(name, ctx.sourceFile))
|
|
9298
|
+
return false;
|
|
9299
|
+
const a = ctx.analyzer;
|
|
9300
|
+
if (a.jsxConstants?.has(name))
|
|
9301
|
+
return false;
|
|
9302
|
+
if (a.jsxFunctions?.has(name))
|
|
9303
|
+
return false;
|
|
9304
|
+
if (a.jsxMultiReturnFunctions?.has(name))
|
|
9305
|
+
return false;
|
|
9306
|
+
if (a.inlineableJsxConsts?.has(name))
|
|
9307
|
+
return false;
|
|
9308
|
+
return true;
|
|
9309
|
+
}
|
|
9310
|
+
function hasDynamicTagBinding(name, sourceFile) {
|
|
9311
|
+
let found = false;
|
|
9312
|
+
const visit2 = (node) => {
|
|
9313
|
+
if (found)
|
|
9314
|
+
return;
|
|
9315
|
+
if (ts11.isVariableDeclaration(node) && ts11.isIdentifier(node.name) && node.name.text === name && node.initializer) {
|
|
9316
|
+
let init = node.initializer;
|
|
9317
|
+
while (ts11.isAsExpression(init) || ts11.isSatisfiesExpression(init) || ts11.isParenthesizedExpression(init) || ts11.isNonNullExpression(init)) {
|
|
9318
|
+
init = init.expression;
|
|
9319
|
+
}
|
|
9320
|
+
if (ts11.isPropertyAccessExpression(init) && init.name.text === "tag") {
|
|
9321
|
+
found = true;
|
|
9322
|
+
return;
|
|
9323
|
+
}
|
|
9324
|
+
}
|
|
9325
|
+
ts11.forEachChild(node, visit2);
|
|
9326
|
+
};
|
|
9327
|
+
visit2(sourceFile);
|
|
9328
|
+
return found;
|
|
9329
|
+
}
|
|
9071
9330
|
function tryResolveIdentifierAsTemplateLiteral(ident, ctx) {
|
|
9072
9331
|
const constInfo = findLocalConst(ident.text, ctx);
|
|
9073
9332
|
if (!constInfo)
|
|
@@ -10072,7 +10331,7 @@ function collectInnerLoops(nodes, siblingOffsets, outerLoopParam, ctx, options)
|
|
|
10072
10331
|
}
|
|
10073
10332
|
function decideLoopRendering(loop, siblingOffsets, ctx) {
|
|
10074
10333
|
const hasNestedComps = (loop.nestedComponents?.length ?? 0) > 0;
|
|
10075
|
-
const innerLoops =
|
|
10334
|
+
const innerLoops = collectInnerLoops(loop.children, siblingOffsets, loop.param, ctx);
|
|
10076
10335
|
const hasInnerLoops = (innerLoops?.length ?? 0) > 0;
|
|
10077
10336
|
const useElementReconciliation = !loop.childComponent && !loop.isStaticArray && (hasNestedComps || hasInnerLoops);
|
|
10078
10337
|
return { useElementReconciliation, innerLoops };
|
|
@@ -10356,7 +10615,9 @@ function collectFromElement(element, ctx, insideConditional = false) {
|
|
|
10356
10615
|
const elemRestName = ctx.restPropsName;
|
|
10357
10616
|
const elemPropsObjName = ctx.propsObjectName;
|
|
10358
10617
|
if (spreadVal && (spreadVal === elemRestName || spreadVal === elemPropsObjName)) {
|
|
10359
|
-
const
|
|
10618
|
+
const consumedKeys = spreadVal === elemRestName ? ctx.propsParams.map((p) => p.name) : [];
|
|
10619
|
+
const staticAttrKeys = element.attrs.filter((a) => a.name !== "...").map((a) => a.name);
|
|
10620
|
+
const excludeKeys = [...new Set([...consumedKeys, ...staticAttrKeys])];
|
|
10360
10621
|
ctx.restAttrElements.push({
|
|
10361
10622
|
slotId: element.slotId,
|
|
10362
10623
|
source: PROPS_PARAM,
|
|
@@ -12888,7 +13149,7 @@ function buildStaticArrayChildInitsPlan(ctx) {
|
|
|
12888
13149
|
const innerComps = elem.nestedComponents.filter((c) => (c.loopDepth ?? 0) === innerLoop.depth && c.innerLoopArray === innerLoop.array);
|
|
12889
13150
|
if (innerComps.length === 0)
|
|
12890
13151
|
continue;
|
|
12891
|
-
plans.push(buildInnerLoopNestedPlan(elem, innerLoop, innerComps));
|
|
13152
|
+
plans.push(elem.childComponent ? buildComponentRootedInnerLoopPlan(elem, innerLoop, innerComps) : buildInnerLoopNestedPlan(elem, innerLoop, innerComps));
|
|
12892
13153
|
}
|
|
12893
13154
|
}
|
|
12894
13155
|
}
|
|
@@ -12949,6 +13210,25 @@ function buildInnerLoopNestedPlan(elem, innerLoop, innerComps) {
|
|
|
12949
13210
|
comps
|
|
12950
13211
|
};
|
|
12951
13212
|
}
|
|
13213
|
+
function buildComponentRootedInnerLoopPlan(elem, innerLoop, innerComps) {
|
|
13214
|
+
const comps = innerComps.map((comp) => ({
|
|
13215
|
+
componentName: comp.name,
|
|
13216
|
+
selector: buildCompSelector(comp),
|
|
13217
|
+
propsExpr: buildStaticPropsExpr(comp.props)
|
|
13218
|
+
}));
|
|
13219
|
+
return {
|
|
13220
|
+
kind: "component-rooted-inner-loop",
|
|
13221
|
+
containerVar: `_${varSlotId(elem.slotId)}`,
|
|
13222
|
+
outerArrayExpr: elem.array,
|
|
13223
|
+
outerParam: elem.param,
|
|
13224
|
+
outerPreludeStatements: elem.mapPreamble ? [elem.mapPreamble] : [],
|
|
13225
|
+
innerArrayExpr: innerLoop.array,
|
|
13226
|
+
innerParam: innerLoop.param,
|
|
13227
|
+
innerPreludeStatements: innerLoop.mapPreamble ? [innerLoop.mapPreamble] : [],
|
|
13228
|
+
depth: innerLoop.depth,
|
|
13229
|
+
comps
|
|
13230
|
+
};
|
|
13231
|
+
}
|
|
12952
13232
|
function buildStaticPropsExpr(props) {
|
|
12953
13233
|
const entries = props.map((p) => {
|
|
12954
13234
|
if (p.isEventHandler) {
|
|
@@ -12988,6 +13268,9 @@ function stringifyOne(lines, plan) {
|
|
|
12988
13268
|
case "inner-loop-nested":
|
|
12989
13269
|
emitInnerLoopNested(lines, plan);
|
|
12990
13270
|
break;
|
|
13271
|
+
case "component-rooted-inner-loop":
|
|
13272
|
+
emitComponentRootedInnerLoop(lines, plan);
|
|
13273
|
+
break;
|
|
12991
13274
|
}
|
|
12992
13275
|
}
|
|
12993
13276
|
function emitSingleComp(lines, plan) {
|
|
@@ -13067,6 +13350,44 @@ function emitInnerLoopNested(lines, plan) {
|
|
|
13067
13350
|
lines.push(` }`);
|
|
13068
13351
|
lines.push("");
|
|
13069
13352
|
}
|
|
13353
|
+
function emitComponentRootedInnerLoop(lines, plan) {
|
|
13354
|
+
const {
|
|
13355
|
+
containerVar,
|
|
13356
|
+
outerArrayExpr,
|
|
13357
|
+
outerParam,
|
|
13358
|
+
outerPreludeStatements,
|
|
13359
|
+
innerArrayExpr,
|
|
13360
|
+
innerParam,
|
|
13361
|
+
innerPreludeStatements,
|
|
13362
|
+
depth,
|
|
13363
|
+
comps
|
|
13364
|
+
} = plan;
|
|
13365
|
+
const scopesVar = (i) => comps.length > 1 ? `__compScopes${i}` : "__compScopes";
|
|
13366
|
+
const cursorVar = (i) => comps.length > 1 ? `__ci${i}` : "__ci";
|
|
13367
|
+
const compElVar = (i) => comps.length > 1 ? `__compEl${i}` : "__compEl";
|
|
13368
|
+
lines.push(` // Initialize component-rooted inner-loop components (depth ${depth})`);
|
|
13369
|
+
lines.push(` if (${containerVar}) {`);
|
|
13370
|
+
comps.forEach((comp, i) => {
|
|
13371
|
+
lines.push(` const ${scopesVar(i)} = qsaChildScopes(${containerVar}, ${comp.selector})`);
|
|
13372
|
+
lines.push(` let ${cursorVar(i)} = 0`);
|
|
13373
|
+
});
|
|
13374
|
+
lines.push(` ${outerArrayExpr}.forEach((${outerParam}) => {`);
|
|
13375
|
+
for (const stmt of outerPreludeStatements) {
|
|
13376
|
+
lines.push(` ${stmt}`);
|
|
13377
|
+
}
|
|
13378
|
+
lines.push(` ${innerArrayExpr}.forEach((${innerParam}) => {`);
|
|
13379
|
+
for (const stmt of innerPreludeStatements) {
|
|
13380
|
+
lines.push(` ${stmt}`);
|
|
13381
|
+
}
|
|
13382
|
+
comps.forEach((comp, i) => {
|
|
13383
|
+
lines.push(` const ${compElVar(i)} = ${scopesVar(i)}[${cursorVar(i)}++]`);
|
|
13384
|
+
lines.push(` if (${compElVar(i)}) initChild('${nameForRegistryRef(comp.componentName)}', ${compElVar(i)}, ${comp.propsExpr})`);
|
|
13385
|
+
});
|
|
13386
|
+
lines.push(` })`);
|
|
13387
|
+
lines.push(` })`);
|
|
13388
|
+
lines.push(` }`);
|
|
13389
|
+
lines.push("");
|
|
13390
|
+
}
|
|
13070
13391
|
|
|
13071
13392
|
// src/ir-to-client-js/phases/static-array-child-inits.ts
|
|
13072
13393
|
function emitStaticArrayChildInits(lines, ctx) {
|
|
@@ -17345,6 +17666,15 @@ function emitParsedExpr(expr, emitter) {
|
|
|
17345
17666
|
if (expr.method === "sort" || expr.method === "toSorted") {
|
|
17346
17667
|
return emitter.sortMethod(expr.method, expr.object, expr.comparator, emit);
|
|
17347
17668
|
}
|
|
17669
|
+
if (expr.method === "reduce" || expr.method === "reduceRight") {
|
|
17670
|
+
return emitter.reduceMethod(expr.method, expr.object, expr.reduceOp, emit);
|
|
17671
|
+
}
|
|
17672
|
+
if (expr.method === "flat") {
|
|
17673
|
+
return emitter.flatMethod(expr.object, expr.flatDepth, emit);
|
|
17674
|
+
}
|
|
17675
|
+
if (expr.method === "flatMap") {
|
|
17676
|
+
return emitter.flatMapMethod(expr.object, expr.flatMapOp, emit);
|
|
17677
|
+
}
|
|
17348
17678
|
return emitter.arrayMethod(expr.method, expr.object, expr.args, emit);
|
|
17349
17679
|
case "unsupported":
|
|
17350
17680
|
return emitter.unsupported(expr.raw, expr.reason);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect-elements.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/collect-elements.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAoC,KAAK,MAAM,EAAmC,MAAM,UAAU,CAAA;AACtH,OAAO,KAAK,EAAE,eAAe,EAA+H,iBAAiB,EAA0B,oBAAoB,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAwGpQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA0C7E;AAyBD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,wBAIpC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,wBAAwB,GACjC,UAAU,EAAE,CAyId;
|
|
1
|
+
{"version":3,"file":"collect-elements.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/collect-elements.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAoC,KAAK,MAAM,EAAmC,MAAM,UAAU,CAAA;AACtH,OAAO,KAAK,EAAE,eAAe,EAA+H,iBAAiB,EAA0B,oBAAoB,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAwGpQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA0C7E;AAyBD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,wBAIpC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,wBAAwB,GACjC,UAAU,EAAE,CAyId;AAqKD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,eAAe,EACpB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,iBAAiB,UAAQ,GACxB,IAAI,CAsON;AA8WD;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,GAAG,EAAE,eAAe,EACpB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,SAAS,OAAO,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAC5E,iBAAiB,CAUnB;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,eAAe,EACpB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,SAAS,OAAO,UAAU,EAAE,gBAAgB,EAAE,GACjE,oBAAoB,EAAE,CA4DxB"}
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
* 2. `outer-nested` for each depth-0 entry in `elem.nestedComponents`.
|
|
9
9
|
* 3. `inner-loop-nested` for each `elem.innerLoops` entry that has
|
|
10
10
|
* matching depth-N components.
|
|
11
|
+
* 4. `component-rooted-inner-loop` instead of (3) when the outer item is
|
|
12
|
+
* itself a child component (#1725) — the inner `.map()` lives inside
|
|
13
|
+
* the component's JSX children, so it's addressed by a document-order
|
|
14
|
+
* zip rather than element offsets.
|
|
11
15
|
*
|
|
12
16
|
* Selector / propsExpr / offset decisions all resolve here. The
|
|
13
17
|
* stringifier never inspects raw IR.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-static-array-child-init.d.ts","sourceRoot":"","sources":["../../../src/ir-to-client-js/plan/build-static-array-child-init.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build-static-array-child-init.d.ts","sourceRoot":"","sources":["../../../src/ir-to-client-js/plan/build-static-array-child-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAO/C,OAAO,KAAK,EAQV,yBAAyB,EAC1B,MAAM,2BAA2B,CAAA;AAElC,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,eAAe,GACnB,yBAAyB,CAsC3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Plan types for `emitStaticArrayChildInits` — the
|
|
2
|
+
* Plan types for `emitStaticArrayChildInits` — the shapes that
|
|
3
3
|
* `static array` loops emit for child component initialisation:
|
|
4
4
|
*
|
|
5
5
|
* - `single-comp` — `loop.childComponent` ケース。一つの child component
|
|
@@ -8,6 +8,13 @@
|
|
|
8
8
|
* `__iterEl.querySelector(...)` 経由で initChild。
|
|
9
9
|
* - `inner-loop-nested` — depth > 0 の `nestedComponents`。outer + inner
|
|
10
10
|
* forEach の二重ループで initChild。
|
|
11
|
+
* - `component-rooted-inner-loop`
|
|
12
|
+
* — outer の loop item root が **child component**
|
|
13
|
+
* (`loop.childComponent`) で、その JSX children に
|
|
14
|
+
* component の nested `.map()` を持つケース (#1725)。
|
|
15
|
+
* element offset では fragment-root passthrough の
|
|
16
|
+
* flatten 済み items に届かないため、document order
|
|
17
|
+
* の zip (`qsaChildScopes` + cursor) で initChild。
|
|
11
18
|
*
|
|
12
19
|
* All decisions (selector, propsExpr, offset expressions) are resolved at
|
|
13
20
|
* build time so the stringifier becomes a deterministic walk.
|
|
@@ -122,6 +129,43 @@ export interface InnerLoopNestedInitPlan {
|
|
|
122
129
|
/** Per-component initialisers emitted inside the inner forEach body. */
|
|
123
130
|
comps: readonly InnerLoopComp[];
|
|
124
131
|
}
|
|
125
|
-
|
|
132
|
+
/**
|
|
133
|
+
* Plan for an inner `.map()` of components living inside a **component-rooted**
|
|
134
|
+
* outer loop item (#1725). The outer loop body is a single child component
|
|
135
|
+
* (`loop.childComponent`, e.g. a `SelectGroup` passthrough) whose JSX
|
|
136
|
+
* `children` contain a nested `.map()` of components (e.g. `SelectItem`).
|
|
137
|
+
*
|
|
138
|
+
* `inner-loop-nested` can't be reused here: it addresses inner components via
|
|
139
|
+
* `containerVar.children[outerOffset]`, which assumes the outer loop item is a
|
|
140
|
+
* DOM **element**. A fragment-rooted passthrough component (`<>{children}</>`)
|
|
141
|
+
* emits no wrapper element, so its rendered items are flattened directly under
|
|
142
|
+
* the parent container with no per-group element to index.
|
|
143
|
+
*
|
|
144
|
+
* Instead this shape zips the inner component scopes — found in document order
|
|
145
|
+
* via `qsaChildScopes(container, <selector>)` — against the flattened
|
|
146
|
+
* `outer.forEach(o => inner.forEach(i => ...))` iteration. Document order is
|
|
147
|
+
* the SSR render order, so position `__ci++` pairs each scope with its data
|
|
148
|
+
* item regardless of whether the outer component root is an element or a
|
|
149
|
+
* fragment.
|
|
150
|
+
*/
|
|
151
|
+
export interface ComponentRootedInnerLoopInitPlan {
|
|
152
|
+
kind: 'component-rooted-inner-loop';
|
|
153
|
+
containerVar: string;
|
|
154
|
+
/** Outer loop's array expression. */
|
|
155
|
+
outerArrayExpr: string;
|
|
156
|
+
outerParam: string;
|
|
157
|
+
/** Outer `.map()` callback preamble locals (#1064). */
|
|
158
|
+
outerPreludeStatements: PreludeStatements;
|
|
159
|
+
/** Inner loop's array expression (references the outer param). */
|
|
160
|
+
innerArrayExpr: string;
|
|
161
|
+
innerParam: string;
|
|
162
|
+
/** Inner `.map()` callback preamble locals (#1064). */
|
|
163
|
+
innerPreludeStatements: PreludeStatements;
|
|
164
|
+
/** Depth used in the leading comment line. */
|
|
165
|
+
depth: number;
|
|
166
|
+
/** Per-component initialisers emitted inside the inner forEach body. */
|
|
167
|
+
comps: readonly InnerLoopComp[];
|
|
168
|
+
}
|
|
169
|
+
export type StaticArrayChildInitPlan = SingleCompInitPlan | OuterNestedInitPlan | InnerLoopNestedInitPlan | ComponentRootedInnerLoopInitPlan;
|
|
126
170
|
export type StaticArrayChildInitsPlan = readonly StaticArrayChildInitPlan[];
|
|
127
171
|
//# sourceMappingURL=static-array-child-init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-array-child-init.d.ts","sourceRoot":"","sources":["../../../src/ir-to-client-js/plan/static-array-child-init.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"static-array-child-init.d.ts","sourceRoot":"","sources":["../../../src/ir-to-client-js/plan/static-array-child-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-array-child-init.d.ts","sourceRoot":"","sources":["../../../src/ir-to-client-js/stringify/static-array-child-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"static-array-child-init.d.ts","sourceRoot":"","sources":["../../../src/ir-to-client-js/stringify/static-array-child-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,KAAK,EAMV,yBAAyB,EAC1B,MAAM,iCAAiC,CAAA;AAGxC,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,yBAAyB,GAC/B,IAAI,CAIN"}
|
|
@@ -496,7 +496,14 @@ export interface RestAttrElement {
|
|
|
496
496
|
slotId: string;
|
|
497
497
|
/** The spread source expression (e.g., 'rest', 'props') */
|
|
498
498
|
source: string;
|
|
499
|
-
/**
|
|
499
|
+
/**
|
|
500
|
+
* Prop SOURCE KEYS already consumed by the component (exclude from
|
|
501
|
+
* applyRestAttrs). For the destructured `...rest` form this is the
|
|
502
|
+
* destructured param names (the JS rest-exclusion set) unioned with any
|
|
503
|
+
* statically-set attr names; applyRestAttrs filters `source[key]` by these
|
|
504
|
+
* so it neither re-binds separately-wired events nor re-emits consumed
|
|
505
|
+
* props under their raw key. See collect-elements.ts for the rationale.
|
|
506
|
+
*/
|
|
500
507
|
excludeKeys: string[];
|
|
501
508
|
}
|
|
502
509
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -528,6 +528,15 @@ export interface IRComponent {
|
|
|
528
528
|
children: IRNode[];
|
|
529
529
|
template: string;
|
|
530
530
|
slotId: string | null;
|
|
531
|
+
/**
|
|
532
|
+
* True when `name` is a dynamic-tag local (`const Tag = children.tag`)
|
|
533
|
+
* rather than a real component reference. Such a "component" has no
|
|
534
|
+
* registrable template — it is a runtime-chosen tag. Consumed ONLY by
|
|
535
|
+
* the Go template adapter, which lowers it to a children passthrough so
|
|
536
|
+
* the dead branch registers cleanly (Hono/CSR/Mojo ignore this flag).
|
|
537
|
+
* Omitted (undefined) for ordinary components to keep IR diffs minimal.
|
|
538
|
+
*/
|
|
539
|
+
dynamicTag?: boolean;
|
|
531
540
|
loc: SourceLocation;
|
|
532
541
|
}
|
|
533
542
|
export interface IRSlot {
|