nexa-compiler 0.2.7 → 0.3.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.
@@ -23,12 +23,25 @@ function genNode(node) {
23
23
  return genElement(node);
24
24
  case 'slot':
25
25
  return genSlot(node);
26
+ case 'if':
27
+ return genIf(node);
28
+ case 'for':
29
+ return genFor(node);
26
30
  case 'comment':
27
31
  return 'null';
28
32
  default:
29
33
  return 'null';
30
34
  }
31
35
  }
36
+ function genIf(node) {
37
+ const thenCode = node.then.length === 1 ? genNode(node.then[0]) : `h('div', null, [\n ${node.then.map(genNode).join(',\n ')}\n ])`;
38
+ const elseCode = node.else_ ? (node.else_.length === 1 ? genNode(node.else_[0]) : `h('div', null, [\n ${node.else_.map(genNode).join(',\n ')}\n ])`) : 'null';
39
+ return `${node.condition} ? ${thenCode} : ${elseCode}`;
40
+ }
41
+ function genFor(node) {
42
+ const childrenCode = node.children.length === 1 ? genNode(node.children[0]) : `h('div', null, [\n ${node.children.map(genNode).join(',\n ')}\n ])`;
43
+ return `${node.list}.map((${node.item}, ${node.index}) => ${childrenCode})`;
44
+ }
32
45
  function genElement(node) {
33
46
  const { tag, props, children } = node;
34
47
  const childStr = genChildren(children);
@@ -43,16 +56,17 @@ function genElement(node) {
43
56
  return elementCode;
44
57
  }
45
58
  function buildElementCode(tag, propStr, childStr) {
59
+ const tagCode = JSON.stringify(tag);
46
60
  if (propStr && childStr) {
47
- return `h('${tag}', { ${propStr} }, [\n ${childStr}\n ])`;
61
+ return `h(${tagCode}, { ${propStr} }, [\n ${childStr}\n ])`;
48
62
  }
49
63
  if (propStr) {
50
- return `h('${tag}', { ${propStr} })`;
64
+ return `h(${tagCode}, { ${propStr} })`;
51
65
  }
52
66
  if (childStr) {
53
- return `h('${tag}', null, [\n ${childStr}\n ])`;
67
+ return `h(${tagCode}, null, [\n ${childStr}\n ])`;
54
68
  }
55
- return `h('${tag}')`;
69
+ return `h(${tagCode})`;
56
70
  }
57
71
  function genChildren(children) {
58
72
  if (!children || children.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/codegen/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/codegen/template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexa-compiler",
3
- "version": "0.2.7",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",