@torpor/view 0.1.0 → 0.1.2

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/compile.js CHANGED
@@ -1224,7 +1224,7 @@ function buildIfNode(node, status, b) {
1224
1224
  }
1225
1225
  function buildIfBranch(node, status, b, parentName, rangeName, index) {
1226
1226
  status.imports.add("t_run_branch");
1227
- b.append(`${node.statement} {`);
1227
+ b.append(`${replaceForVarNames(node.statement, status)} {`);
1228
1228
  b.append(`t_run_branch(${rangeName}, ${index}, () => {`);
1229
1229
  buildFragment(node, status, b, parentName, "t_before");
1230
1230
  status.fragmentStack.push({
@@ -1259,7 +1259,7 @@ function buildReplaceNode(node, status, b) {
1259
1259
  }
1260
1260
  function buildReplaceBranch(node, status, b, parentName, rangeName) {
1261
1261
  status.imports.add("t_run_branch");
1262
- b.append(`${node.statement};`);
1262
+ b.append(`${replaceForVarNames(node.statement, status)};`);
1263
1263
  b.append(`t_run_branch(${rangeName}, -1, () => {`);
1264
1264
  buildFragment(node, status, b, parentName, "t_before");
1265
1265
  status.fragmentStack.push({
@@ -1318,7 +1318,7 @@ function buildSwitchNode(node, status, b) {
1318
1318
  }
1319
1319
  function buildSwitchBranch(node, status, b, parentName, rangeName, index) {
1320
1320
  status.imports.add("t_run_branch");
1321
- b.append(`${node.statement} {`);
1321
+ b.append(`${replaceForVarNames(node.statement, status)} {`);
1322
1322
  b.append(`t_run_branch(${rangeName}, ${index}, () => {`);
1323
1323
  buildFragment(node, status, b, parentName, "t_before");
1324
1324
  status.fragmentStack.push({
@@ -1524,8 +1524,17 @@ function buildHeadNode(node, status, b) {
1524
1524
  });`);
1525
1525
  }
1526
1526
  function buildElementAttributes(node, varName, status, b) {
1527
+ const refAttribute = node.attributes.find((a) => a.name === "&ref");
1528
+ if (refAttribute) {
1529
+ let value = refAttribute.value;
1530
+ if (value != null && isFullyReactive(value)) {
1531
+ value = value.substring(1, value.length - 1);
1532
+ b.append(`${value} = ${varName};`);
1533
+ }
1534
+ }
1527
1535
  for (let { name, value } of node.attributes) {
1528
1536
  if (name === "self" && node.tagName === ":element") {
1537
+ } else if (name === "&ref") {
1529
1538
  } else if (name.startsWith("{") && name.endsWith("}")) {
1530
1539
  name = name.substring(1, name.length - 1);
1531
1540
  const propName = name.split(".").at(-1);
@@ -1536,9 +1545,7 @@ function buildElementAttributes(node, varName, status, b) {
1536
1545
  } else {
1537
1546
  value = `\`${trimQuotes(value).replaceAll("{", "${")}\``;
1538
1547
  }
1539
- if (name === "&ref") {
1540
- b.append(`${value} = ${varName};`);
1541
- } else if (name === "&group") {
1548
+ if (name === "&group") {
1542
1549
  buildBindGroupAttribute(node, varName, value, status, b);
1543
1550
  } else if (name === "&value" || name === "&checked") {
1544
1551
  buildBindAttribute(node, varName, name, value, status, b);