@builder.io/mitosis 0.4.0 → 0.4.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.
Files changed (196) hide show
  1. package/dist/src/constants/media-sizes.js +4 -5
  2. package/dist/src/generators/alpine/generate.js +114 -132
  3. package/dist/src/generators/alpine/render-mount-hook.js +8 -5
  4. package/dist/src/generators/alpine/render-update-hooks.js +13 -13
  5. package/dist/src/generators/angular/helpers.js +19 -9
  6. package/dist/src/generators/angular/index.js +599 -584
  7. package/dist/src/generators/builder.js +200 -165
  8. package/dist/src/generators/context/angular.js +32 -26
  9. package/dist/src/generators/context/helpers/context-with-symbol-key.js +25 -21
  10. package/dist/src/generators/context/qwik.js +21 -21
  11. package/dist/src/generators/context/react.js +22 -22
  12. package/dist/src/generators/context/rsc.js +20 -22
  13. package/dist/src/generators/context/solid.js +22 -22
  14. package/dist/src/generators/context/svelte.js +33 -28
  15. package/dist/src/generators/context/vue.js +1 -1
  16. package/dist/src/generators/helpers/context.js +6 -13
  17. package/dist/src/generators/helpers/functions.js +8 -8
  18. package/dist/src/generators/helpers/on-mount.js +9 -5
  19. package/dist/src/generators/helpers/rsc.js +7 -9
  20. package/dist/src/generators/html.js +995 -534
  21. package/dist/src/generators/liquid.js +81 -79
  22. package/dist/src/generators/lit/collect-class-string.js +10 -12
  23. package/dist/src/generators/lit/generate.js +204 -159
  24. package/dist/src/generators/marko/generate.js +193 -183
  25. package/dist/src/generators/minify.js +5 -9
  26. package/dist/src/generators/mitosis.js +135 -134
  27. package/dist/src/generators/qwik/component-generator.js +159 -154
  28. package/dist/src/generators/qwik/component.js +51 -81
  29. package/dist/src/generators/qwik/directives.js +68 -84
  30. package/dist/src/generators/qwik/helpers/add-prevent-default.js +6 -7
  31. package/dist/src/generators/qwik/helpers/convert-method-to-function.js +38 -38
  32. package/dist/src/generators/qwik/helpers/handlers.js +16 -25
  33. package/dist/src/generators/qwik/helpers/stable-inject.js +7 -8
  34. package/dist/src/generators/qwik/helpers/stable-serialize.js +7 -8
  35. package/dist/src/generators/qwik/helpers/state.js +36 -43
  36. package/dist/src/generators/qwik/helpers/styles.js +19 -40
  37. package/dist/src/generators/qwik/jsx.js +63 -75
  38. package/dist/src/generators/qwik/src-generator.js +134 -167
  39. package/dist/src/generators/react/blocks.js +122 -127
  40. package/dist/src/generators/react/generator.js +314 -259
  41. package/dist/src/generators/react/helpers.js +23 -28
  42. package/dist/src/generators/react/state.js +34 -51
  43. package/dist/src/generators/react-native/index.js +72 -84
  44. package/dist/src/generators/react-native/sanitize-react-native-block-styles.js +14 -26
  45. package/dist/src/generators/rsc.js +30 -36
  46. package/dist/src/generators/solid/blocks.js +46 -43
  47. package/dist/src/generators/solid/helpers/styles.js +11 -11
  48. package/dist/src/generators/solid/index.js +199 -190
  49. package/dist/src/generators/solid/state/helpers.js +76 -90
  50. package/dist/src/generators/solid/state/signals.js +30 -37
  51. package/dist/src/generators/solid/state/state.js +35 -48
  52. package/dist/src/generators/solid/state/store.js +40 -46
  53. package/dist/src/generators/stencil/collect-class-string.js +10 -12
  54. package/dist/src/generators/stencil/generate.js +158 -145
  55. package/dist/src/generators/svelte/blocks.js +146 -144
  56. package/dist/src/generators/svelte/helpers.js +10 -17
  57. package/dist/src/generators/svelte/svelte.js +321 -287
  58. package/dist/src/generators/swift-ui.js +162 -101
  59. package/dist/src/generators/taro.js +32 -36
  60. package/dist/src/generators/template.js +71 -74
  61. package/dist/src/generators/vue/blocks.js +116 -107
  62. package/dist/src/generators/vue/compositionApi.js +67 -50
  63. package/dist/src/generators/vue/helpers.js +71 -96
  64. package/dist/src/generators/vue/optionsApi.js +134 -105
  65. package/dist/src/generators/vue/vue.js +210 -207
  66. package/dist/src/helpers/babel-transform.js +40 -63
  67. package/dist/src/helpers/bindings.js +4 -12
  68. package/dist/src/helpers/camel-case.js +4 -5
  69. package/dist/src/helpers/capitalize.js +1 -1
  70. package/dist/src/helpers/component-file-extensions.js +23 -35
  71. package/dist/src/helpers/create-mitosis-component.js +22 -26
  72. package/dist/src/helpers/create-mitosis-context.js +5 -12
  73. package/dist/src/helpers/create-mitosis-node.js +10 -12
  74. package/dist/src/helpers/dash-case.js +2 -2
  75. package/dist/src/helpers/dedent.js +18 -22
  76. package/dist/src/helpers/event-handlers.js +1 -1
  77. package/dist/src/helpers/fast-clone.js +1 -1
  78. package/dist/src/helpers/filter-empty-text-nodes.js +2 -2
  79. package/dist/src/helpers/generic-format.js +7 -8
  80. package/dist/src/helpers/get-bindings.js +4 -4
  81. package/dist/src/helpers/get-components-used.js +3 -3
  82. package/dist/src/helpers/get-components.js +4 -4
  83. package/dist/src/helpers/get-custom-imports.js +10 -12
  84. package/dist/src/helpers/get-prop-functions.js +7 -8
  85. package/dist/src/helpers/get-props-ref.js +8 -8
  86. package/dist/src/helpers/get-props.js +12 -13
  87. package/dist/src/helpers/get-refs.js +4 -4
  88. package/dist/src/helpers/get-state-object-string.js +42 -61
  89. package/dist/src/helpers/get-state-used.js +7 -8
  90. package/dist/src/helpers/get-styles.js +6 -6
  91. package/dist/src/helpers/getters-to-functions.js +8 -12
  92. package/dist/src/helpers/handle-missing-state.js +3 -3
  93. package/dist/src/helpers/has-bindings-text.js +6 -6
  94. package/dist/src/helpers/has-component.js +4 -4
  95. package/dist/src/helpers/has-props.js +3 -3
  96. package/dist/src/helpers/has-stateful-dom.js +4 -4
  97. package/dist/src/helpers/has.js +3 -3
  98. package/dist/src/helpers/indent.js +2 -3
  99. package/dist/src/helpers/is-children.js +4 -5
  100. package/dist/src/helpers/is-component.js +1 -1
  101. package/dist/src/helpers/is-html-attribute.js +2 -11
  102. package/dist/src/helpers/is-mitosis-node.js +1 -1
  103. package/dist/src/helpers/is-root-text-node.js +1 -1
  104. package/dist/src/helpers/is-upper-case.js +1 -1
  105. package/dist/src/helpers/is-valid-attribute-name.js +1 -1
  106. package/dist/src/helpers/json.js +2 -2
  107. package/dist/src/helpers/map-refs.js +29 -40
  108. package/dist/src/helpers/merge-options.js +20 -31
  109. package/dist/src/helpers/mitosis-imports.js +5 -6
  110. package/dist/src/helpers/nodes/for.js +2 -3
  111. package/dist/src/helpers/nullable.js +1 -3
  112. package/dist/src/helpers/on-event.js +32 -36
  113. package/dist/src/helpers/output.js +4 -5
  114. package/dist/src/helpers/parse-node.js +13 -5
  115. package/dist/src/helpers/parsers.js +10 -14
  116. package/dist/src/helpers/patterns.js +6 -8
  117. package/dist/src/helpers/plugins/process-code/index.js +114 -120
  118. package/dist/src/helpers/plugins/process-signals.js +114 -125
  119. package/dist/src/helpers/plugins/process-target-blocks.js +18 -20
  120. package/dist/src/helpers/process-http-requests.js +8 -4
  121. package/dist/src/helpers/remove-surrounding-block.js +2 -2
  122. package/dist/src/helpers/render-imports.js +99 -111
  123. package/dist/src/helpers/replace-identifiers.js +40 -49
  124. package/dist/src/helpers/replace-new-lines-in-strings.js +3 -3
  125. package/dist/src/helpers/signals/signals.js +27 -35
  126. package/dist/src/helpers/slots.js +11 -20
  127. package/dist/src/helpers/state.js +1 -3
  128. package/dist/src/helpers/strip-meta-properties.js +6 -6
  129. package/dist/src/helpers/strip-state-and-props-refs.js +21 -32
  130. package/dist/src/helpers/styles/collect-css.js +39 -44
  131. package/dist/src/helpers/styles/collect-styled-components.js +30 -28
  132. package/dist/src/helpers/styles/helpers.js +23 -29
  133. package/dist/src/helpers/trace-reference-to-module-path.js +3 -4
  134. package/dist/src/helpers/transform-state-setters.js +16 -19
  135. package/dist/src/helpers/traverse-nodes.js +2 -2
  136. package/dist/src/helpers/try-prettier-format.js +3 -3
  137. package/dist/src/helpers/typescript-project.js +25 -25
  138. package/dist/src/helpers/typescript.js +1 -3
  139. package/dist/src/modules/plugins.js +20 -28
  140. package/dist/src/parsers/angular.js +49 -57
  141. package/dist/src/parsers/builder/builder.js +448 -343
  142. package/dist/src/parsers/builder/helpers.js +10 -10
  143. package/dist/src/parsers/context.js +15 -17
  144. package/dist/src/parsers/jsx/ast.js +11 -11
  145. package/dist/src/parsers/jsx/component-types.js +22 -32
  146. package/dist/src/parsers/jsx/context.js +12 -12
  147. package/dist/src/parsers/jsx/element-parser.js +43 -54
  148. package/dist/src/parsers/jsx/exports.js +12 -14
  149. package/dist/src/parsers/jsx/function-parser.js +108 -119
  150. package/dist/src/parsers/jsx/helpers.js +11 -13
  151. package/dist/src/parsers/jsx/hooks/helpers.js +14 -16
  152. package/dist/src/parsers/jsx/hooks/index.js +34 -44
  153. package/dist/src/parsers/jsx/hooks/use-target.js +27 -27
  154. package/dist/src/parsers/jsx/imports.js +7 -17
  155. package/dist/src/parsers/jsx/jsx.js +92 -91
  156. package/dist/src/parsers/jsx/props-types.js +8 -10
  157. package/dist/src/parsers/jsx/props.js +15 -23
  158. package/dist/src/parsers/jsx/signals.js +28 -29
  159. package/dist/src/parsers/jsx/state.d.ts +2 -4
  160. package/dist/src/parsers/jsx/state.js +59 -93
  161. package/dist/src/parsers/svelte/css/index.js +1 -1
  162. package/dist/src/parsers/svelte/helpers/bindings.js +18 -19
  163. package/dist/src/parsers/svelte/helpers/children.js +5 -6
  164. package/dist/src/parsers/svelte/helpers/expressions.js +7 -9
  165. package/dist/src/parsers/svelte/helpers/hooks.js +2 -2
  166. package/dist/src/parsers/svelte/helpers/post-process.js +49 -70
  167. package/dist/src/parsers/svelte/helpers/string.js +5 -5
  168. package/dist/src/parsers/svelte/html/actions.js +17 -10
  169. package/dist/src/parsers/svelte/html/each.js +11 -16
  170. package/dist/src/parsers/svelte/html/element.js +68 -78
  171. package/dist/src/parsers/svelte/html/fragment.js +3 -3
  172. package/dist/src/parsers/svelte/html/if-else.js +11 -18
  173. package/dist/src/parsers/svelte/html/index.js +14 -14
  174. package/dist/src/parsers/svelte/html/mustache-tag.js +5 -5
  175. package/dist/src/parsers/svelte/html/slot.js +5 -5
  176. package/dist/src/parsers/svelte/html/text.js +7 -14
  177. package/dist/src/parsers/svelte/index.js +23 -72
  178. package/dist/src/parsers/svelte/instance/context.js +17 -17
  179. package/dist/src/parsers/svelte/instance/expressions.js +2 -2
  180. package/dist/src/parsers/svelte/instance/functions.js +35 -30
  181. package/dist/src/parsers/svelte/instance/hooks.js +4 -5
  182. package/dist/src/parsers/svelte/instance/imports.js +11 -21
  183. package/dist/src/parsers/svelte/instance/index.js +22 -22
  184. package/dist/src/parsers/svelte/instance/properties.js +11 -23
  185. package/dist/src/parsers/svelte/instance/reactive.js +11 -11
  186. package/dist/src/parsers/svelte/instance/references.js +13 -13
  187. package/dist/src/parsers/svelte/instance/statements.js +3 -3
  188. package/dist/src/parsers/svelte/module/index.js +14 -26
  189. package/dist/src/parsers/svelte/typescript/index.js +27 -36
  190. package/dist/src/plugins/compile-away-builder-components.js +223 -156
  191. package/dist/src/plugins/compile-away-components.js +13 -21
  192. package/dist/src/plugins/map-styles.js +7 -7
  193. package/dist/src/symbols/symbol-processor.js +44 -62
  194. package/dist/src/targets.js +19 -19
  195. package/dist/src/types/mitosis-node.js +1 -1
  196. package/package.json +1 -1
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,116 +22,111 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
22
  __setModuleDefault(result, mod);
34
23
  return result;
35
24
  };
36
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
- if (ar || !(i in from)) {
39
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
- ar[i] = from[i];
41
- }
42
- }
43
- return to.concat(ar || Array.prototype.slice.call(from));
44
- };
45
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
46
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
47
27
  };
48
28
  Object.defineProperty(exports, "__esModule", { value: true });
49
29
  exports.postProcess = exports.preventNameCollissions = void 0;
50
- var generator_1 = __importDefault(require("@babel/generator"));
51
- var parser = __importStar(require("@babel/parser"));
52
- var types = __importStar(require("@babel/types"));
53
- var replace_identifiers_1 = require("../../../helpers/replace-identifiers");
54
- var bindings_1 = require("./bindings");
55
- var getArgs = function (code) {
30
+ const generator_1 = __importDefault(require("@babel/generator"));
31
+ const parser = __importStar(require("@babel/parser"));
32
+ const types = __importStar(require("@babel/types"));
33
+ const replace_identifiers_1 = require("../../../helpers/replace-identifiers");
34
+ const bindings_1 = require("./bindings");
35
+ const getArgs = (code) => {
56
36
  try {
57
- var parsed = parser.parse(code);
58
- var body = parsed.program.body[0];
37
+ let parsed = parser.parse(code);
38
+ let body = parsed.program.body[0];
59
39
  if (types.isFunctionDeclaration(body)) {
60
- return body.params.map(function (p) { return (0, generator_1.default)(p).code; });
40
+ return body.params.map((p) => (0, generator_1.default)(p).code);
61
41
  }
62
42
  }
63
43
  catch (e) { }
64
44
  return [];
65
45
  };
66
46
  function preventNameCollissions(json, item) {
67
- var output = item.code;
68
- var argumentsOutput = getArgs(output);
47
+ let output = item.code;
48
+ const argumentsOutput = getArgs(output);
69
49
  output = (0, replace_identifiers_1.replaceNodes)({
70
50
  code: output,
71
- nodeMaps: argumentsOutput.map(function (arg) { return ({
51
+ nodeMaps: argumentsOutput.map((arg) => ({
72
52
  from: types.identifier(arg),
73
- to: types.identifier("".concat(arg, "_")),
74
- }); }),
53
+ to: types.identifier(`${arg}_`),
54
+ })),
75
55
  });
76
56
  return (argumentsOutput === null || argumentsOutput === void 0 ? void 0 : argumentsOutput.length)
77
- ? __assign(__assign({}, item), { code: output, arguments: getArgs(output) }) : __assign(__assign({}, item), { code: output });
57
+ ? {
58
+ ...item,
59
+ code: output,
60
+ arguments: getArgs(output),
61
+ }
62
+ : { ...item, code: output };
78
63
  }
79
64
  exports.preventNameCollissions = preventNameCollissions;
80
65
  function prependProperties(json, code) {
81
66
  return (0, replace_identifiers_1.replaceNodes)({
82
- code: code,
83
- nodeMaps: Object.keys(json.props).map(function (property) { return ({
67
+ code,
68
+ nodeMaps: Object.keys(json.props).map((property) => ({
84
69
  from: types.identifier(property),
85
70
  to: types.memberExpression(types.identifier('props'), types.identifier(property)),
86
- }); }),
71
+ })),
87
72
  });
88
73
  }
89
74
  function prependState(json, input) {
90
- var output = input;
91
- for (var _i = 0, _a = Object.keys(json.state); _i < _a.length; _i++) {
92
- var stateKey = _a[_i];
75
+ let output = input;
76
+ for (const stateKey of Object.keys(json.state)) {
93
77
  output = (0, replace_identifiers_1.replaceIdentifiers)({
94
78
  code: output,
95
79
  from: stateKey,
96
- to: "state.".concat(stateKey),
80
+ to: `state.${stateKey}`,
97
81
  });
98
82
  }
99
83
  return output;
100
84
  }
101
85
  function addPropertiesAndState(json, input) {
102
- var output = input;
86
+ let output = input;
103
87
  output = prependProperties(json, output);
104
88
  output = prependState(json, output);
105
89
  return output;
106
90
  }
107
91
  function addPropertiesAndStateToNode(json, node) {
108
92
  var _a;
109
- for (var _i = 0, _b = Object.keys(node.bindings); _i < _b.length; _i++) {
110
- var key = _b[_i];
93
+ for (const key of Object.keys(node.bindings)) {
111
94
  if (Object.prototype.hasOwnProperty.call(node.bindings, key)) {
112
- var value = node.bindings[key];
95
+ const value = node.bindings[key];
113
96
  node.bindings[key].code = addPropertiesAndState(json, (_a = value === null || value === void 0 ? void 0 : value.code) !== null && _a !== void 0 ? _a : '').trim();
114
97
  }
115
98
  }
116
99
  }
117
100
  function postProcessState(json) {
118
- for (var _i = 0, _a = Object.keys(json.state); _i < _a.length; _i++) {
119
- var key = _a[_i];
120
- var item = json.state[key];
101
+ for (const key of Object.keys(json.state)) {
102
+ const item = json.state[key];
121
103
  if ((item === null || item === void 0 ? void 0 : item.type) !== 'property') {
122
- var output = preventNameCollissions(json, item);
104
+ const output = preventNameCollissions(json, item);
123
105
  output.code = addPropertiesAndState(json, output.code);
124
- json.state[key] = __assign(__assign({}, item), output);
106
+ json.state[key] = {
107
+ ...item,
108
+ ...output,
109
+ };
125
110
  }
126
111
  }
127
112
  }
128
113
  function postProcessChildren(json, children) {
129
114
  var _a;
130
- for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
131
- var node = children_1[_i];
115
+ for (const node of children) {
132
116
  addPropertiesAndStateToNode(json, node);
133
117
  (0, bindings_1.processBindings)(json, node);
134
- var children_2 = [];
118
+ let children = [];
135
119
  if (((_a = node.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
136
- children_2 = node.children;
120
+ children = node.children;
137
121
  }
138
- var metaValues = (Object.values(node.meta) || []);
122
+ const metaValues = (Object.values(node.meta) || []);
139
123
  if (metaValues.length > 0) {
140
- var metaChildren = metaValues.filter(function (item) {
124
+ const metaChildren = metaValues.filter((item) => {
141
125
  return (item === null || item === void 0 ? void 0 : item['@type']) === '@builder.io/mitosis/node';
142
126
  });
143
- children_2 = __spreadArray(__spreadArray([], children_2, true), metaChildren, true);
127
+ children = [...children, ...metaChildren];
144
128
  }
145
- postProcessChildren(json, children_2);
129
+ postProcessChildren(json, children);
146
130
  }
147
131
  }
148
132
  function addPropertiesAndStateToHook(json, hook) {
@@ -152,30 +136,25 @@ function addPropertiesAndStateToHook(json, hook) {
152
136
  };
153
137
  }
154
138
  function postProcessHooks(json) {
155
- var hookKeys = Object.keys(json.hooks);
156
- var _loop_1 = function (key) {
157
- var hook = json.hooks[key];
139
+ const hookKeys = Object.keys(json.hooks);
140
+ for (const key of hookKeys) {
141
+ let hook = json.hooks[key];
158
142
  if (!hook) {
159
- return "continue";
143
+ continue;
160
144
  }
161
145
  if (Array.isArray(hook)) {
162
- hook.forEach(function (item, index) {
146
+ hook.forEach((item, index) => {
163
147
  hook.splice(index, 1, addPropertiesAndStateToHook(json, item));
164
148
  });
165
149
  }
166
150
  else {
167
151
  hook = addPropertiesAndStateToHook(json, hook);
168
152
  }
169
- };
170
- for (var _i = 0, hookKeys_1 = hookKeys; _i < hookKeys_1.length; _i++) {
171
- var key = hookKeys_1[_i];
172
- _loop_1(key);
173
153
  }
174
154
  }
175
155
  function postProcessContext(json) {
176
156
  var _a;
177
- for (var _i = 0, _b = Object.keys(json.context.set); _i < _b.length; _i++) {
178
- var key = _b[_i];
157
+ for (const key of Object.keys(json.context.set)) {
179
158
  if ((_a = json.context.set[key]) === null || _a === void 0 ? void 0 : _a.ref) {
180
159
  json.context.set[key].ref = addPropertiesAndState(json, json.context.set[key].ref);
181
160
  }
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stripQuotes = exports.insertAt = exports.uniqueName = void 0;
4
4
  // helper functions for strings
5
- var lodash_1 = require("lodash");
5
+ const lodash_1 = require("lodash");
6
6
  function uniqueName(existingItems, reference) {
7
- var index = 0;
8
- var match = false;
7
+ let index = 0;
8
+ let match = false;
9
9
  while (false === match) {
10
10
  if (!existingItems.includes(reference)) {
11
11
  match = true;
@@ -13,11 +13,11 @@ function uniqueName(existingItems, reference) {
13
13
  }
14
14
  index++;
15
15
  }
16
- return (0, lodash_1.camelCase)("".concat(reference).concat(index));
16
+ return (0, lodash_1.camelCase)(`${reference}${index}`);
17
17
  }
18
18
  exports.uniqueName = uniqueName;
19
19
  function insertAt(string_, sub, pos) {
20
- return "".concat(string_.slice(0, pos)).concat(sub).concat(string_.slice(pos));
20
+ return `${string_.slice(0, pos)}${sub}${string_.slice(pos)}`;
21
21
  }
22
22
  exports.insertAt = insertAt;
23
23
  function stripQuotes(string_) {
@@ -1,38 +1,45 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseAction = void 0;
4
- var astring_1 = require("astring");
5
- var string_1 = require("../helpers/string");
4
+ const astring_1 = require("astring");
5
+ const string_1 = require("../helpers/string");
6
6
  function parseAction(json, nodeReference, attribute) {
7
7
  var _a;
8
- var methodName = attribute.name;
9
- var parameters = '';
8
+ const methodName = attribute.name;
9
+ let parameters = '';
10
10
  if (['Identifier', 'ObjectExpression'].includes((_a = attribute.expression) === null || _a === void 0 ? void 0 : _a.type)) {
11
11
  parameters = (0, astring_1.generate)(attribute.expression);
12
12
  }
13
- var actionHandler = (0, string_1.uniqueName)(Object.keys(json.state), 'actionHandler');
13
+ const actionHandler = (0, string_1.uniqueName)(Object.keys(json.state), 'actionHandler');
14
14
  json.state[actionHandler] = {
15
15
  code: 'null',
16
16
  type: 'property',
17
17
  propertyType: 'normal',
18
18
  };
19
- var initHandler = "if (".concat(nodeReference, ") { ").concat(actionHandler, " = ").concat(methodName, "(").concat(nodeReference, ", ").concat(parameters, "); };\n");
19
+ const initHandler = `if (${nodeReference}) { ${actionHandler} = ${methodName}(${nodeReference}, ${parameters}); };\n`;
20
20
  json.hooks.onMount.push({
21
21
  code: initHandler,
22
22
  });
23
23
  // Handle Destroy / Re-Mount
24
- var onReferenceUpdate = "\n if (!".concat(nodeReference, " && ").concat(actionHandler, ") { \n ").concat(actionHandler, "?.destroy(); \n ").concat(actionHandler, " = null; \n } else if (").concat(nodeReference, " && !").concat(actionHandler, ") { \n ").concat(initHandler, " \n };\n\n ");
24
+ const onReferenceUpdate = `
25
+ if (!${nodeReference} && ${actionHandler}) {
26
+ ${actionHandler}?.destroy();
27
+ ${actionHandler} = null;
28
+ } else if (${nodeReference} && !${actionHandler}) {
29
+ ${initHandler}
30
+ };\n
31
+ `;
25
32
  json.hooks.onUpdate = json.hooks.onUpdate || [];
26
33
  json.hooks.onUpdate.push({
27
34
  code: onReferenceUpdate,
28
- deps: "[".concat(nodeReference, "]"),
35
+ deps: `[${nodeReference}]`,
29
36
  });
30
37
  // Handle Update
31
38
  if (parameters) {
32
- var onUpdate = "".concat(actionHandler, "?.update(").concat(parameters, ")\n");
39
+ const onUpdate = `${actionHandler}?.update(${parameters})\n`;
33
40
  json.hooks.onUpdate.push({
34
41
  code: onUpdate,
35
- deps: "[".concat(parameters, "]"),
42
+ deps: `[${parameters}]`,
36
43
  });
37
44
  }
38
45
  }
@@ -1,25 +1,20 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.parseEach = void 0;
15
- var children_1 = require("../helpers/children");
16
- var mitosis_node_1 = require("../helpers/mitosis-node");
17
- var bindings_1 = require("../../../helpers/bindings");
4
+ const children_1 = require("../helpers/children");
5
+ const mitosis_node_1 = require("../helpers/mitosis-node");
6
+ const bindings_1 = require("../../../helpers/bindings");
18
7
  function parseEach(json, node) {
19
- return __assign(__assign({}, (0, mitosis_node_1.createMitosisNode)()), { name: 'For', scope: { forName: node.context.name }, bindings: {
8
+ return {
9
+ ...(0, mitosis_node_1.createMitosisNode)(),
10
+ name: 'For',
11
+ scope: { forName: node.context.name },
12
+ bindings: {
20
13
  each: (0, bindings_1.createSingleBinding)({
21
14
  code: node.expression.name,
22
15
  }),
23
- }, children: (0, children_1.parseChildren)(json, node) });
16
+ },
17
+ children: (0, children_1.parseChildren)(json, node),
18
+ };
24
19
  }
25
20
  exports.parseEach = parseEach;
@@ -1,32 +1,20 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.parseElement = void 0;
15
- var astring_1 = require("astring");
16
- var lodash_1 = require("lodash");
17
- var children_1 = require("../helpers/children");
18
- var mitosis_node_1 = require("../helpers/mitosis-node");
19
- var string_1 = require("../helpers/string");
20
- var actions_1 = require("./actions");
21
- var bindings_1 = require("../../../helpers/bindings");
22
- var SPECIAL_ELEMENTS = new Set(['svelte:component', 'svelte:element']);
4
+ const astring_1 = require("astring");
5
+ const lodash_1 = require("lodash");
6
+ const children_1 = require("../helpers/children");
7
+ const mitosis_node_1 = require("../helpers/mitosis-node");
8
+ const string_1 = require("../helpers/string");
9
+ const actions_1 = require("./actions");
10
+ const bindings_1 = require("../../../helpers/bindings");
11
+ const SPECIAL_ELEMENTS = new Set(['svelte:component', 'svelte:element']);
23
12
  function parseElement(json, node) {
24
- var _a;
25
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
26
- var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
13
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
14
+ const mitosisNode = (0, mitosis_node_1.createMitosisNode)();
27
15
  mitosisNode.name = node.name;
28
- var useReference = function () {
29
- var nodeReference = (0, string_1.uniqueName)(Object.keys(json.refs), node.name);
16
+ const useReference = () => {
17
+ const nodeReference = (0, string_1.uniqueName)(Object.keys(json.refs), node.name);
30
18
  if (!Object.keys(json.refs).includes(nodeReference)) {
31
19
  json.refs[nodeReference] = { argument: '', typeParameter: '' };
32
20
  mitosisNode.bindings.ref = (0, bindings_1.createSingleBinding)({ code: nodeReference });
@@ -37,25 +25,24 @@ function parseElement(json, node) {
37
25
  Parse special elements such as svelte:component and svelte:element
38
26
  */
39
27
  if (SPECIAL_ELEMENTS.has(node.name)) {
40
- var expression = (0, astring_1.generate)(node.expression || node.tag);
41
- var prefix = 'state';
28
+ const expression = (0, astring_1.generate)(node.expression || node.tag);
29
+ let prefix = 'state';
42
30
  if (json.props[expression]) {
43
31
  prefix = 'props';
44
32
  }
45
- mitosisNode.name = "".concat(prefix, ".").concat(expression);
33
+ mitosisNode.name = `${prefix}.${expression}`;
46
34
  }
47
- if ((_b = node.attributes) === null || _b === void 0 ? void 0 : _b.length) {
48
- for (var _i = 0, _v = node.attributes; _i < _v.length; _i++) {
49
- var attribute = _v[_i];
35
+ if ((_a = node.attributes) === null || _a === void 0 ? void 0 : _a.length) {
36
+ for (const attribute of node.attributes) {
50
37
  switch (attribute.type) {
51
38
  case 'Attribute': {
52
- switch ((_c = attribute.value[0]) === null || _c === void 0 ? void 0 : _c.type) {
39
+ switch ((_b = attribute.value[0]) === null || _b === void 0 ? void 0 : _b.type) {
53
40
  case 'Text': {
54
- var value = attribute.value[0];
41
+ const value = attribute.value[0];
55
42
  // if there are already conditional class declarations
56
43
  // add class names defined here to the bindings code as well
57
- if (attribute.name === 'class' && ((_e = (_d = mitosisNode.bindings.class) === null || _d === void 0 ? void 0 : _d.code) === null || _e === void 0 ? void 0 : _e.length)) {
58
- mitosisNode.bindings.class.code = (0, string_1.insertAt)(mitosisNode.bindings.class.code, " ".concat(value.data, " "), 1);
44
+ if (attribute.name === 'class' && ((_d = (_c = mitosisNode.bindings.class) === null || _c === void 0 ? void 0 : _c.code) === null || _d === void 0 ? void 0 : _d.length)) {
45
+ mitosisNode.bindings.class.code = (0, string_1.insertAt)(mitosisNode.bindings.class.code, ` ${value.data} `, 1);
59
46
  }
60
47
  else {
61
48
  mitosisNode.properties[attribute.name] = value.data;
@@ -63,27 +50,27 @@ function parseElement(json, node) {
63
50
  break;
64
51
  }
65
52
  case 'MustacheTag': {
66
- var value = attribute.value[0];
67
- var expression = value.expression;
68
- var code = (0, astring_1.generate)(expression);
53
+ const value = attribute.value[0];
54
+ const expression = value.expression;
55
+ let code = (0, astring_1.generate)(expression);
69
56
  if (attribute.name === 'class') {
70
- code = ((_g = (_f = mitosisNode.bindings.class) === null || _f === void 0 ? void 0 : _f.code) === null || _g === void 0 ? void 0 : _g.length)
57
+ code = ((_f = (_e = mitosisNode.bindings.class) === null || _e === void 0 ? void 0 : _e.code) === null || _f === void 0 ? void 0 : _f.length)
71
58
  ? (0, string_1.insertAt)(mitosisNode.bindings.class.code, ' ${' + code + '}', mitosisNode.bindings.class.code.length - 1)
72
59
  : '`${' + code + '}`';
73
60
  }
74
- mitosisNode.bindings[attribute.name] = (0, bindings_1.createSingleBinding)({ code: code });
61
+ mitosisNode.bindings[attribute.name] = (0, bindings_1.createSingleBinding)({ code });
75
62
  break;
76
63
  }
77
64
  case 'AttributeShorthand': {
78
65
  // e.g. <input {value}/>
79
- var value = attribute.value[0];
80
- var code = value.expression.name;
81
- mitosisNode.bindings[code] = (0, bindings_1.createSingleBinding)({ code: code });
66
+ const value = attribute.value[0];
67
+ const code = value.expression.name;
68
+ mitosisNode.bindings[code] = (0, bindings_1.createSingleBinding)({ code });
82
69
  break;
83
70
  }
84
71
  default: {
85
- var name_1 = attribute.name;
86
- mitosisNode.bindings[name_1] = (0, bindings_1.createSingleBinding)({
72
+ const name = attribute.name;
73
+ mitosisNode.bindings[name] = (0, bindings_1.createSingleBinding)({
87
74
  code: attribute.value.toString(),
88
75
  });
89
76
  }
@@ -91,7 +78,7 @@ function parseElement(json, node) {
91
78
  break;
92
79
  }
93
80
  case 'Spread': {
94
- var expression = attribute.expression;
81
+ const expression = attribute.expression;
95
82
  mitosisNode.bindings[expression.name] = {
96
83
  code: expression.name,
97
84
  type: 'spread',
@@ -100,52 +87,55 @@ function parseElement(json, node) {
100
87
  break;
101
88
  }
102
89
  case 'EventHandler': {
103
- var object = {
90
+ let object = {
104
91
  code: '',
105
92
  arguments: [],
106
93
  };
107
- if (((_h = attribute.expression) === null || _h === void 0 ? void 0 : _h.type) === 'ArrowTypeFunction') {
108
- var expression = attribute.expression;
109
- var code = (0, astring_1.generate)(expression.body);
94
+ if (((_g = attribute.expression) === null || _g === void 0 ? void 0 : _g.type) === 'ArrowTypeFunction') {
95
+ const expression = attribute.expression;
96
+ let code = (0, astring_1.generate)(expression.body);
110
97
  object = {
111
- code: code,
112
- arguments: (_k = (_j = expression.body) === null || _j === void 0 ? void 0 : _j.arguments) === null || _k === void 0 ? void 0 : _k.map(function (a) { var _a; return (_a = a.name) !== null && _a !== void 0 ? _a : []; }),
98
+ code,
99
+ arguments: (_j = (_h = expression.body) === null || _h === void 0 ? void 0 : _h.arguments) === null || _j === void 0 ? void 0 : _j.map((a) => { var _a; return (_a = a.name) !== null && _a !== void 0 ? _a : []; }),
113
100
  };
114
101
  }
115
102
  else if (attribute.expression) {
116
- var code = (0, astring_1.generate)(attribute.expression);
117
- if (((_l = attribute.expression.body) === null || _l === void 0 ? void 0 : _l.type) === 'CallExpression') {
103
+ let code = (0, astring_1.generate)(attribute.expression);
104
+ if (((_k = attribute.expression.body) === null || _k === void 0 ? void 0 : _k.type) === 'CallExpression') {
118
105
  code = (0, astring_1.generate)(attribute.expression.body);
119
106
  }
120
107
  if (!code.startsWith(')') && !code.endsWith(')')) {
121
108
  code += '()';
122
109
  }
123
- if (!((_m = attribute.expression.arguments) === null || _m === void 0 ? void 0 : _m.length) &&
124
- !((_p = (_o = attribute.expression.body) === null || _o === void 0 ? void 0 : _o.arguments) === null || _p === void 0 ? void 0 : _p.length)) {
110
+ if (!((_l = attribute.expression.arguments) === null || _l === void 0 ? void 0 : _l.length) &&
111
+ !((_o = (_m = attribute.expression.body) === null || _m === void 0 ? void 0 : _m.arguments) === null || _o === void 0 ? void 0 : _o.length)) {
125
112
  code = code.replace(/\(\)/g, '(event)');
126
113
  }
127
- var args = undefined;
114
+ let args = undefined;
128
115
  if (attribute.expression.type === 'ArrowFunctionExpression') {
129
- args = (_r = (_q = attribute.expression.params) === null || _q === void 0 ? void 0 : _q.map(function (arg) { return (0, astring_1.generate)(arg); })) !== null && _r !== void 0 ? _r : [];
116
+ args = (_q = (_p = attribute.expression.params) === null || _p === void 0 ? void 0 : _p.map((arg) => (0, astring_1.generate)(arg))) !== null && _q !== void 0 ? _q : [];
130
117
  }
131
118
  else if (attribute.expression.type === 'CallExpression' &&
132
119
  attribute.expression.arguments.length) {
133
120
  args = [];
134
121
  }
135
122
  object = {
136
- code: code,
123
+ code,
137
124
  arguments: args,
138
125
  };
139
126
  }
140
127
  else {
141
128
  object = {
142
- code: "props.on".concat((0, lodash_1.upperFirst)(attribute.name), "(event)"),
129
+ code: `props.on${(0, lodash_1.upperFirst)(attribute.name)}(event)`,
143
130
  arguments: ['event'],
144
131
  };
145
132
  }
146
- mitosisNode.bindings["on".concat((0, lodash_1.upperFirst)(attribute.name))] = (0, bindings_1.createSingleBinding)(object);
133
+ mitosisNode.bindings[`on${(0, lodash_1.upperFirst)(attribute.name)}`] = (0, bindings_1.createSingleBinding)(object);
147
134
  // add event handlers as props (e.g. props.onClick)
148
- json.props = __assign(__assign({}, json.props), (_a = {}, _a["on".concat((0, lodash_1.upperFirst)(attribute.name))] = { default: function () { return ({}); } }, _a));
135
+ json.props = {
136
+ ...json.props,
137
+ [`on${(0, lodash_1.upperFirst)(attribute.name)}`]: { default: () => ({}) },
138
+ };
149
139
  break;
150
140
  }
151
141
  case 'Binding': {
@@ -154,12 +144,12 @@ function parseElement(json, node) {
154
144
  same goes for replacing the group binding with checked
155
145
  see helpers/post-process.ts
156
146
  */
157
- var expression = attribute.expression;
158
- var binding = expression.name;
159
- var name_2 = attribute.name;
147
+ const expression = attribute.expression;
148
+ const binding = expression.name;
149
+ let name = attribute.name;
160
150
  // template ref
161
151
  if (attribute.name === 'this') {
162
- name_2 = 'ref';
152
+ name = 'ref';
163
153
  json.refs[binding] = {
164
154
  argument: 'null',
165
155
  typeParameter: 'any',
@@ -168,42 +158,42 @@ function parseElement(json, node) {
168
158
  delete json.state[binding];
169
159
  }
170
160
  }
171
- if (name_2 !== 'ref' && name_2 !== 'group' && name_2 !== 'this') {
172
- var onChangeCode = "".concat(binding, " = event.target.value");
161
+ if (name !== 'ref' && name !== 'group' && name !== 'this') {
162
+ const onChangeCode = `${binding} = event.target.value`;
173
163
  mitosisNode.bindings['onChange'] = (0, bindings_1.createSingleBinding)({
174
164
  code: onChangeCode,
175
165
  arguments: ['event'],
176
166
  });
177
167
  }
178
- mitosisNode.bindings[name_2] = (0, bindings_1.createSingleBinding)({
168
+ mitosisNode.bindings[name] = (0, bindings_1.createSingleBinding)({
179
169
  code: binding,
180
170
  });
181
171
  break;
182
172
  }
183
173
  case 'Class': {
184
- var expression = attribute.expression;
174
+ const expression = attribute.expression;
185
175
  // conditional classes (e.g. class:disabled or class:disabled={disabled})
186
- var binding = "".concat((0, astring_1.generate)(expression), " ? '").concat(attribute.name, "' : ''");
187
- var code = '';
176
+ const binding = `${(0, astring_1.generate)(expression)} ? '${attribute.name}' : ''`;
177
+ let code = '';
188
178
  // if there are existing class declarations
189
179
  // add them here instead and remove them from properties
190
180
  // to avoid duplicate class declarations in certain frameworks
191
- if ((_t = (_s = mitosisNode.properties) === null || _s === void 0 ? void 0 : _s.class) === null || _t === void 0 ? void 0 : _t.length) {
192
- code = "".concat(mitosisNode.properties.class, " ");
181
+ if ((_s = (_r = mitosisNode.properties) === null || _r === void 0 ? void 0 : _r.class) === null || _s === void 0 ? void 0 : _s.length) {
182
+ code = `${mitosisNode.properties.class} `;
193
183
  delete mitosisNode.properties.class;
194
184
  }
195
185
  // if class code is already defined (meaning there is more than 1 conditional class declaration)
196
186
  // append it to the string instead of assigning it
197
187
  if (mitosisNode.bindings.class &&
198
188
  Object.prototype.hasOwnProperty.call(mitosisNode.bindings.class, 'code') &&
199
- ((_u = mitosisNode.bindings.class) === null || _u === void 0 ? void 0 : _u.code.length)) {
189
+ ((_t = mitosisNode.bindings.class) === null || _t === void 0 ? void 0 : _t.code.length)) {
200
190
  code = (0, string_1.insertAt)(mitosisNode.bindings.class.code, ' ${' + binding + '}', mitosisNode.bindings.class.code.length - 1);
201
- mitosisNode.bindings.class = (0, bindings_1.createSingleBinding)({ code: code });
191
+ mitosisNode.bindings.class = (0, bindings_1.createSingleBinding)({ code });
202
192
  }
203
193
  else {
204
194
  // otherwise just assign
205
195
  code = '`' + code + '${' + binding + '}`';
206
- mitosisNode.bindings.class = (0, bindings_1.createSingleBinding)({ code: code });
196
+ mitosisNode.bindings.class = (0, bindings_1.createSingleBinding)({ code });
207
197
  }
208
198
  break;
209
199
  }
@@ -215,12 +205,12 @@ function parseElement(json, node) {
215
205
  }
216
206
  }
217
207
  }
218
- var filteredChildren = [];
208
+ let filteredChildren = [];
219
209
  if (node.children) {
220
210
  filteredChildren = (0, children_1.filterChildren)(node.children);
221
211
  }
222
212
  if (filteredChildren.length === 1 && filteredChildren[0].type === 'RawMustacheTag') {
223
- var child = filteredChildren[0];
213
+ const child = filteredChildren[0];
224
214
  mitosisNode.children = [];
225
215
  mitosisNode.bindings.innerHTML = (0, bindings_1.createSingleBinding)({
226
216
  code: (0, astring_1.generate)(child.expression),
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseFragment = void 0;
4
- var children_1 = require("../helpers/children");
5
- var mitosis_node_1 = require("../helpers/mitosis-node");
4
+ const children_1 = require("../helpers/children");
5
+ const mitosis_node_1 = require("../helpers/mitosis-node");
6
6
  function parseFragment(json, node) {
7
- var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
7
+ let mitosisNode = (0, mitosis_node_1.createMitosisNode)();
8
8
  mitosisNode.name = 'Fragment';
9
9
  mitosisNode.children = (0, children_1.parseChildren)(json, node);
10
10
  // if there is only one child, don't even bother to render the fragment as it is not necessary