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.
package/dist/codegen/template.js
CHANGED
|
@@ -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(
|
|
61
|
+
return `h(${tagCode}, { ${propStr} }, [\n ${childStr}\n ])`;
|
|
48
62
|
}
|
|
49
63
|
if (propStr) {
|
|
50
|
-
return `h(
|
|
64
|
+
return `h(${tagCode}, { ${propStr} })`;
|
|
51
65
|
}
|
|
52
66
|
if (childStr) {
|
|
53
|
-
return `h(
|
|
67
|
+
return `h(${tagCode}, null, [\n ${childStr}\n ])`;
|
|
54
68
|
}
|
|
55
|
-
return `h(
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,0BAA0B,CAAA;AAElF,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;IAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACrE,OAAO,sCAAsC,KAAK,UAAU,CAAA;AAC9D,CAAC;AAED,SAAS,OAAO,CAAC,IAAqB;IACpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACrC,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,OAAO,CAAA;QACrB,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;QACzB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAA;QACf;YACE,OAAO,MAAM,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAA2C;IAC7D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IAErC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE1D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;QACvC,OAAO,GAAG,IAAI,SAAS,IAAI,KAAK,KAAK,iBAAiB,WAAW,WAAW,CAAA;IAC9E,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,WAAW,SAAS,CAAA;IAC9C,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,OAAe,EAAE,QAAgB;IACtE,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/codegen/template.ts"],"names":[],"mappings":"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"}
|