@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,71 +22,61 @@ 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.componentFunctionToJson = void 0;
50
- var babel = __importStar(require("@babel/core"));
51
- var generator_1 = __importDefault(require("@babel/generator"));
52
- var hooks_1 = require("../../constants/hooks");
53
- var create_mitosis_component_1 = require("../../helpers/create-mitosis-component");
54
- var get_bindings_1 = require("../../helpers/get-bindings");
55
- var trace_reference_to_module_path_1 = require("../../helpers/trace-reference-to-module-path");
56
- var component_types_1 = require("./component-types");
57
- var element_parser_1 = require("./element-parser");
58
- var helpers_1 = require("./helpers");
59
- var hooks_2 = require("./hooks");
60
- var helpers_2 = require("./hooks/helpers");
61
- var state_1 = require("./state");
62
- var types = babel.types;
30
+ const babel = __importStar(require("@babel/core"));
31
+ const generator_1 = __importDefault(require("@babel/generator"));
32
+ const hooks_1 = require("../../constants/hooks");
33
+ const create_mitosis_component_1 = require("../../helpers/create-mitosis-component");
34
+ const get_bindings_1 = require("../../helpers/get-bindings");
35
+ const trace_reference_to_module_path_1 = require("../../helpers/trace-reference-to-module-path");
36
+ const component_types_1 = require("./component-types");
37
+ const element_parser_1 = require("./element-parser");
38
+ const helpers_1 = require("./helpers");
39
+ const hooks_2 = require("./hooks");
40
+ const helpers_2 = require("./hooks/helpers");
41
+ const state_1 = require("./state");
42
+ const { types } = babel;
63
43
  /**
64
44
  * Parses function declarations within the Mitosis copmonent's body to JSON
65
45
  */
66
- var componentFunctionToJson = function (node, context) {
46
+ const componentFunctionToJson = (node, context) => {
67
47
  var _a;
68
- var hooks = {
48
+ const hooks = {
69
49
  onMount: [],
70
50
  onEvent: [],
71
51
  };
72
- var state = {};
73
- var accessedContext = {};
74
- var setContext = {};
75
- var refs = {};
76
- for (var _i = 0, _b = node.body.body; _i < _b.length; _i++) {
77
- var item = _b[_i];
52
+ const state = {};
53
+ const accessedContext = {};
54
+ const setContext = {};
55
+ const refs = {};
56
+ for (const item of node.body.body) {
78
57
  if (types.isExpressionStatement(item)) {
79
- var expression = item.expression;
58
+ const expression = item.expression;
80
59
  if (types.isCallExpression(expression) && types.isIdentifier(expression.callee)) {
81
60
  switch (expression.callee.name) {
82
61
  case hooks_1.HOOKS.SET_CONTEXT: {
83
- var keyNode = expression.arguments[0];
84
- var valueNode = expression.arguments[1];
62
+ const keyNode = expression.arguments[0];
63
+ const valueNode = expression.arguments[1];
85
64
  if (types.isIdentifier(keyNode)) {
86
- var key = keyNode.name;
87
- var keyPath = (0, trace_reference_to_module_path_1.traceReferenceToModulePath)(context.builder.component.imports, key);
65
+ const key = keyNode.name;
66
+ const keyPath = (0, trace_reference_to_module_path_1.traceReferenceToModulePath)(context.builder.component.imports, key);
88
67
  if (valueNode) {
89
68
  if (types.isObjectExpression(valueNode)) {
90
- var value = (0, state_1.parseStateObjectToMitosisState)(valueNode);
69
+ const value = (0, state_1.parseStateObjectToMitosisState)(valueNode);
91
70
  setContext[keyPath] = {
92
71
  name: keyNode.name,
93
- value: value,
72
+ value,
94
73
  };
95
74
  }
96
75
  else {
97
- var ref = (0, generator_1.default)(valueNode).code;
76
+ const ref = (0, generator_1.default)(valueNode).code;
98
77
  setContext[keyPath] = {
99
78
  name: keyNode.name,
100
- ref: ref,
79
+ ref,
101
80
  };
102
81
  }
103
82
  }
@@ -105,7 +84,7 @@ var componentFunctionToJson = function (node, context) {
105
84
  else if (types.isStringLiteral(keyNode)) {
106
85
  if (types.isExpression(valueNode)) {
107
86
  setContext[keyNode.value] = {
108
- name: "\"".concat(keyNode.value, "\""),
87
+ name: `"${keyNode.value}"`,
109
88
  ref: (0, generator_1.default)(valueNode).code,
110
89
  };
111
90
  }
@@ -113,33 +92,31 @@ var componentFunctionToJson = function (node, context) {
113
92
  break;
114
93
  }
115
94
  case hooks_1.HOOKS.MOUNT: {
116
- var firstArg = expression.arguments[0];
117
- var hookOptions = expression.arguments[1];
95
+ const firstArg = expression.arguments[0];
96
+ const hookOptions = expression.arguments[1];
118
97
  if (types.isFunctionExpression(firstArg) || types.isArrowFunctionExpression(firstArg)) {
119
- var code = (0, helpers_2.processHookCode)(firstArg);
120
- var onSSR = false;
98
+ const code = (0, helpers_2.processHookCode)(firstArg);
99
+ let onSSR = false;
121
100
  if (types.isObjectExpression(hookOptions)) {
122
- var onSSRProp = hookOptions.properties.find(function (property) {
123
- return types.isProperty(property) &&
124
- types.isIdentifier(property.key) &&
125
- property.key.name === 'onSSR';
126
- });
101
+ const onSSRProp = hookOptions.properties.find((property) => types.isProperty(property) &&
102
+ types.isIdentifier(property.key) &&
103
+ property.key.name === 'onSSR');
127
104
  if (types.isObjectProperty(onSSRProp) && types.isBooleanLiteral(onSSRProp.value)) {
128
105
  onSSR = onSSRProp.value.value;
129
106
  }
130
107
  }
131
108
  hooks.onMount.push({
132
- code: code,
133
- onSSR: onSSR,
109
+ code,
110
+ onSSR,
134
111
  });
135
112
  }
136
113
  break;
137
114
  }
138
115
  case hooks_1.HOOKS.EVENT: {
139
- var firstArg = expression.arguments[0];
140
- var secondArg = expression.arguments[1];
141
- var thirdArg = expression.arguments[2];
142
- var fourthArg = expression.arguments[3];
116
+ const firstArg = expression.arguments[0];
117
+ const secondArg = expression.arguments[1];
118
+ const thirdArg = expression.arguments[2];
119
+ const fourthArg = expression.arguments[3];
143
120
  if (!types.isStringLiteral(firstArg)) {
144
121
  console.warn('`onEvent` hook skipped. Event name must be a string literal: ', (0, generator_1.default)(expression).code);
145
122
  break;
@@ -153,54 +130,55 @@ var componentFunctionToJson = function (node, context) {
153
130
  console.warn('`onEvent` hook skipped. Element ref must be a value: ', (0, generator_1.default)(expression).code);
154
131
  break;
155
132
  }
156
- var isRoot = types.isBooleanLiteral(fourthArg) ? fourthArg.value : false;
157
- var eventArgName = types.isIdentifier(secondArg.params[0])
133
+ const isRoot = types.isBooleanLiteral(fourthArg) ? fourthArg.value : false;
134
+ const eventArgName = types.isIdentifier(secondArg.params[0])
158
135
  ? secondArg.params[0].name
159
136
  : 'event';
160
- var elementArgName = types.isIdentifier(secondArg.params[1])
137
+ const elementArgName = types.isIdentifier(secondArg.params[1])
161
138
  ? secondArg.params[1].name
162
139
  : 'element';
163
140
  hooks.onEvent.push({
164
141
  eventName: firstArg.value,
165
142
  code: (0, helpers_2.processHookCode)(secondArg),
166
143
  refName: thirdArg.name,
167
- isRoot: isRoot,
168
- eventArgName: eventArgName,
169
- elementArgName: elementArgName,
144
+ isRoot,
145
+ eventArgName,
146
+ elementArgName,
170
147
  });
171
148
  break;
172
149
  }
173
150
  case hooks_1.HOOKS.UPDATE: {
174
- var firstArg = expression.arguments[0];
175
- var secondArg = expression.arguments[1];
151
+ const firstArg = expression.arguments[0];
152
+ const secondArg = expression.arguments[1];
176
153
  if (types.isFunctionExpression(firstArg) || types.isArrowFunctionExpression(firstArg)) {
177
- var code = (0, helpers_2.processHookCode)(firstArg);
154
+ const code = (0, helpers_2.processHookCode)(firstArg);
178
155
  if (!secondArg ||
179
156
  (types.isArrayExpression(secondArg) && secondArg.elements.length > 0)) {
180
- var depsCode = secondArg ? (0, generator_1.default)(secondArg).code : '';
181
- hooks.onUpdate = __spreadArray(__spreadArray([], (hooks.onUpdate || []), true), [
157
+ const depsCode = secondArg ? (0, generator_1.default)(secondArg).code : '';
158
+ hooks.onUpdate = [
159
+ ...(hooks.onUpdate || []),
182
160
  {
183
- code: code,
161
+ code,
184
162
  deps: depsCode,
185
163
  },
186
- ], false);
164
+ ];
187
165
  }
188
166
  }
189
167
  break;
190
168
  }
191
169
  case hooks_1.HOOKS.UNMOUNT: {
192
- var firstArg = expression.arguments[0];
170
+ const firstArg = expression.arguments[0];
193
171
  if (types.isFunctionExpression(firstArg) || types.isArrowFunctionExpression(firstArg)) {
194
- var code = (0, helpers_2.processHookCode)(firstArg);
195
- hooks.onUnMount = { code: code };
172
+ const code = (0, helpers_2.processHookCode)(firstArg);
173
+ hooks.onUnMount = { code };
196
174
  }
197
175
  break;
198
176
  }
199
177
  case hooks_1.HOOKS.INIT: {
200
- var firstArg = expression.arguments[0];
178
+ const firstArg = expression.arguments[0];
201
179
  if (types.isFunctionExpression(firstArg) || types.isArrowFunctionExpression(firstArg)) {
202
- var code = (0, helpers_2.processHookCode)(firstArg);
203
- hooks.onInit = { code: code };
180
+ const code = (0, helpers_2.processHookCode)(firstArg);
181
+ hooks.onInit = { code };
204
182
  }
205
183
  break;
206
184
  }
@@ -213,7 +191,10 @@ var componentFunctionToJson = function (node, context) {
213
191
  break;
214
192
  }
215
193
  case hooks_1.HOOKS.METADATA: {
216
- context.builder.component.meta[hooks_1.HOOKS.METADATA] = __assign(__assign({}, context.builder.component.meta[hooks_1.HOOKS.METADATA]), (0, helpers_1.parseCodeJson)(expression.arguments[0]));
194
+ context.builder.component.meta[hooks_1.HOOKS.METADATA] = {
195
+ ...context.builder.component.meta[hooks_1.HOOKS.METADATA],
196
+ ...(0, helpers_1.parseCodeJson)(expression.arguments[0]),
197
+ };
217
198
  break;
218
199
  }
219
200
  }
@@ -228,15 +209,15 @@ var componentFunctionToJson = function (node, context) {
228
209
  }
229
210
  }
230
211
  if (types.isVariableDeclaration(item)) {
231
- var declaration = item.declarations[0];
232
- var init = declaration.init;
212
+ const declaration = item.declarations[0];
213
+ const init = declaration.init;
233
214
  if (types.isCallExpression(init) && types.isIdentifier(init.callee)) {
234
215
  // React format, like:
235
216
  // const [foo, setFoo] = useState(...)
236
217
  if (types.isArrayPattern(declaration.id) && init.callee.name === hooks_1.HOOKS.STATE) {
237
- var varName = types.isIdentifier(declaration.id.elements[0]) && declaration.id.elements[0].name;
218
+ const varName = types.isIdentifier(declaration.id.elements[0]) && declaration.id.elements[0].name;
238
219
  if (varName) {
239
- var value = init.arguments[0];
220
+ const value = init.arguments[0];
240
221
  // Function as init, like:
241
222
  // useState(() => true)
242
223
  if (types.isArrowFunctionExpression(value)) {
@@ -246,14 +227,13 @@ var componentFunctionToJson = function (node, context) {
246
227
  };
247
228
  }
248
229
  else {
249
- var stateOptions = init.arguments[1];
250
- var propertyType = 'normal';
230
+ const stateOptions = init.arguments[1];
231
+ let propertyType = 'normal';
251
232
  if (types.isObjectExpression(stateOptions)) {
252
- for (var _c = 0, _d = stateOptions.properties; _c < _d.length; _c++) {
253
- var prop = _d[_c];
233
+ for (const prop of stateOptions.properties) {
254
234
  if (!types.isProperty(prop) || !types.isIdentifier(prop.key))
255
235
  continue;
256
- var isReactive = prop.key.name === 'reactive';
236
+ const isReactive = prop.key.name === 'reactive';
257
237
  if (isReactive && types.isBooleanLiteral(prop.value) && prop.value.value) {
258
238
  propertyType = 'reactive';
259
239
  }
@@ -264,7 +244,7 @@ var componentFunctionToJson = function (node, context) {
264
244
  state[varName] = {
265
245
  code: (0, helpers_1.parseCode)(value),
266
246
  type: 'property',
267
- propertyType: propertyType,
247
+ propertyType,
268
248
  };
269
249
  }
270
250
  // Typescript Parameter
@@ -274,28 +254,28 @@ var componentFunctionToJson = function (node, context) {
274
254
  }
275
255
  }
276
256
  else if (init.callee.name === hooks_1.HOOKS.STORE) {
277
- var firstArg = init.arguments[0];
257
+ const firstArg = init.arguments[0];
278
258
  if (types.isObjectExpression(firstArg)) {
279
- var useStoreState = (0, state_1.parseStateObjectToMitosisState)(firstArg);
259
+ const useStoreState = (0, state_1.parseStateObjectToMitosisState)(firstArg);
280
260
  Object.assign(state, useStoreState);
281
261
  }
282
262
  }
283
263
  else if (init.callee.name === hooks_1.HOOKS.CONTEXT) {
284
- var firstArg = init.arguments[0];
264
+ const firstArg = init.arguments[0];
285
265
  if (types.isVariableDeclarator(declaration) && types.isIdentifier(declaration.id)) {
286
266
  if (types.isIdentifier(firstArg)) {
287
- var varName = declaration.id.name;
288
- var name_1 = firstArg.name;
267
+ const varName = declaration.id.name;
268
+ const name = firstArg.name;
289
269
  accessedContext[varName] = {
290
- name: name_1,
291
- path: (0, trace_reference_to_module_path_1.traceReferenceToModulePath)(context.builder.component.imports, name_1),
270
+ name,
271
+ path: (0, trace_reference_to_module_path_1.traceReferenceToModulePath)(context.builder.component.imports, name),
292
272
  };
293
273
  }
294
274
  else {
295
- var varName = declaration.id.name;
296
- var name_2 = (0, generator_1.default)(firstArg).code;
275
+ const varName = declaration.id.name;
276
+ const name = (0, generator_1.default)(firstArg).code;
297
277
  accessedContext[varName] = {
298
- name: name_2,
278
+ name,
299
279
  path: '',
300
280
  };
301
281
  }
@@ -303,8 +283,8 @@ var componentFunctionToJson = function (node, context) {
303
283
  }
304
284
  else if (init.callee.name === hooks_1.HOOKS.REF) {
305
285
  if (types.isIdentifier(declaration.id)) {
306
- var firstArg = init.arguments[0];
307
- var varName = declaration.id.name;
286
+ const firstArg = init.arguments[0];
287
+ const varName = declaration.id.name;
308
288
  refs[varName] = {
309
289
  argument: (0, generator_1.default)(firstArg).code,
310
290
  };
@@ -317,30 +297,39 @@ var componentFunctionToJson = function (node, context) {
317
297
  }
318
298
  }
319
299
  }
320
- var theReturn = node.body.body.find(function (item) { return types.isReturnStatement(item); });
321
- var children = [];
300
+ const theReturn = node.body.body.find((item) => types.isReturnStatement(item));
301
+ const children = [];
322
302
  if (theReturn) {
323
- var value = theReturn.argument;
303
+ const value = theReturn.argument;
324
304
  if (types.isJSXElement(value) || types.isJSXFragment(value)) {
325
- var jsxElement = (0, element_parser_1.jsxElementToJson)(value);
305
+ const jsxElement = (0, element_parser_1.jsxElementToJson)(value);
326
306
  if (jsxElement) {
327
307
  children.push(jsxElement);
328
308
  }
329
309
  }
330
310
  }
331
- var localExports = context.builder.component.exports;
311
+ const { exports: localExports } = context.builder.component;
332
312
  if (localExports) {
333
- var bindingsCode_1 = (0, get_bindings_1.getBindingsCode)(children);
334
- Object.keys(localExports).forEach(function (name) {
335
- var found = bindingsCode_1.find(function (code) { return code.match(new RegExp("\\b".concat(name, "\\b"))); });
313
+ const bindingsCode = (0, get_bindings_1.getBindingsCode)(children);
314
+ Object.keys(localExports).forEach((name) => {
315
+ const found = bindingsCode.find((code) => code.match(new RegExp(`\\b${name}\\b`)));
336
316
  localExports[name].usedInLocal = Boolean(found);
337
317
  });
338
318
  context.builder.component.exports = localExports;
339
319
  }
340
- var propsTypeRef = (0, component_types_1.getPropsTypeRef)(node, context);
341
- return (0, create_mitosis_component_1.createMitosisComponent)(__assign(__assign({}, context.builder.component), { name: (_a = node.id) === null || _a === void 0 ? void 0 : _a.name, state: state, children: children, refs: refs, hooks: hooks, context: {
320
+ const propsTypeRef = (0, component_types_1.getPropsTypeRef)(node, context);
321
+ return (0, create_mitosis_component_1.createMitosisComponent)({
322
+ ...context.builder.component,
323
+ name: (_a = node.id) === null || _a === void 0 ? void 0 : _a.name,
324
+ state,
325
+ children,
326
+ refs: refs,
327
+ hooks,
328
+ context: {
342
329
  get: accessedContext,
343
330
  set: setContext,
344
- }, propsTypeRef: propsTypeRef }));
331
+ },
332
+ propsTypeRef,
333
+ });
345
334
  };
346
335
  exports.componentFunctionToJson = componentFunctionToJson;
@@ -27,35 +27,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.transformAttributeName = exports.HTML_ATTR_FROM_JSX = exports.isImportOrDefaultExport = exports.parseCodeJson = exports.parseCode = exports.uncapitalize = void 0;
30
- var babel = __importStar(require("@babel/core"));
31
- var generator_1 = __importDefault(require("@babel/generator"));
32
- var json_1 = require("../../helpers/json");
33
- var typescript_1 = require("../../helpers/typescript");
34
- var types = babel.types;
35
- var uncapitalize = function (str) {
30
+ const babel = __importStar(require("@babel/core"));
31
+ const generator_1 = __importDefault(require("@babel/generator"));
32
+ const json_1 = require("../../helpers/json");
33
+ const typescript_1 = require("../../helpers/typescript");
34
+ const { types } = babel;
35
+ const uncapitalize = (str) => {
36
36
  if (!str) {
37
37
  return str;
38
38
  }
39
39
  return str[0].toLowerCase() + str.slice(1);
40
40
  };
41
41
  exports.uncapitalize = uncapitalize;
42
- var parseCode = function (node) {
42
+ const parseCode = (node) => {
43
43
  return (0, generator_1.default)(node).code;
44
44
  };
45
45
  exports.parseCode = parseCode;
46
- var parseCodeJson = function (node) {
47
- var code = (0, exports.parseCode)(node);
46
+ const parseCodeJson = (node) => {
47
+ const code = (0, exports.parseCode)(node);
48
48
  return (0, json_1.tryParseJson)(code);
49
49
  };
50
50
  exports.parseCodeJson = parseCodeJson;
51
- var isImportOrDefaultExport = function (node) {
52
- return types.isExportDefaultDeclaration(node) || types.isImportDeclaration(node);
53
- };
51
+ const isImportOrDefaultExport = (node) => types.isExportDefaultDeclaration(node) || types.isImportDeclaration(node);
54
52
  exports.isImportOrDefaultExport = isImportOrDefaultExport;
55
53
  exports.HTML_ATTR_FROM_JSX = {
56
54
  htmlFor: 'for',
57
55
  };
58
- var transformAttributeName = function (name) {
56
+ const transformAttributeName = (name) => {
59
57
  if ((0, typescript_1.objectHasKey)(exports.HTML_ATTR_FROM_JSX, name))
60
58
  return exports.HTML_ATTR_FROM_JSX[name];
61
59
  return name;
@@ -27,13 +27,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.processHookCode = exports.getHook = void 0;
30
- var babel = __importStar(require("@babel/core"));
31
- var generator_1 = __importDefault(require("@babel/generator"));
32
- var types = babel.types;
33
- var getHook = function (node) {
34
- var item = node;
30
+ const babel = __importStar(require("@babel/core"));
31
+ const generator_1 = __importDefault(require("@babel/generator"));
32
+ const { types } = babel;
33
+ const getHook = (node) => {
34
+ const item = node;
35
35
  if (types.isExpressionStatement(item)) {
36
- var expression = item.expression;
36
+ const expression = item.expression;
37
37
  if (types.isCallExpression(expression)) {
38
38
  if (types.isIdentifier(expression.callee)) {
39
39
  return expression;
@@ -43,14 +43,12 @@ var getHook = function (node) {
43
43
  return null;
44
44
  };
45
45
  exports.getHook = getHook;
46
- var processHookCode = function (firstArg) {
47
- return (0, generator_1.default)(firstArg.body)
48
- .code.trim()
49
- // Remove arbitrary block wrapping if any
50
- // AKA
51
- // { console.log('hi') } -> console.log('hi')
52
- .replace(/^{/, '')
53
- .replace(/}$/, '')
54
- .trim();
55
- };
46
+ const processHookCode = (firstArg) => (0, generator_1.default)(firstArg.body)
47
+ .code.trim()
48
+ // Remove arbitrary block wrapping if any
49
+ // AKA
50
+ // { console.log('hi') } -> console.log('hi')
51
+ .replace(/^{/, '')
52
+ .replace(/}$/, '')
53
+ .trim();
56
54
  exports.processHookCode = processHookCode;
@@ -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);
@@ -38,15 +27,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
27
  };
39
28
  Object.defineProperty(exports, "__esModule", { value: true });
40
29
  exports.collectModuleScopeHooks = exports.generateUseStyleCode = exports.parseDefaultPropsHook = void 0;
41
- var babel = __importStar(require("@babel/core"));
42
- var generator_1 = __importDefault(require("@babel/generator"));
43
- var hooks_1 = require("../../../constants/hooks");
44
- var helpers_1 = require("../helpers");
45
- var state_1 = require("../state");
46
- var helpers_2 = require("./helpers");
47
- var types = babel.types;
30
+ const babel = __importStar(require("@babel/core"));
31
+ const generator_1 = __importDefault(require("@babel/generator"));
32
+ const hooks_1 = require("../../../constants/hooks");
33
+ const helpers_1 = require("../helpers");
34
+ const state_1 = require("../state");
35
+ const helpers_2 = require("./helpers");
36
+ const { types } = babel;
48
37
  function parseDefaultPropsHook(component, expression) {
49
- var firstArg = expression.arguments[0];
38
+ const firstArg = expression.arguments[0];
50
39
  if (types.isObjectExpression(firstArg)) {
51
40
  component.defaultProps = (0, state_1.parseStateObjectToMitosisState)(firstArg, false);
52
41
  }
@@ -63,33 +52,34 @@ exports.generateUseStyleCode = generateUseStyleCode;
63
52
  * This function collects metadata and removes the statement from
64
53
  * the returned nodes array
65
54
  */
66
- var collectModuleScopeHooks = function (component, options) { return function (nodes) {
67
- return nodes.filter(function (node) {
68
- var hook = (0, helpers_2.getHook)(node);
69
- if (!hook) {
70
- return true;
71
- }
72
- if (types.isIdentifier(hook.callee)) {
73
- var metadataHooks = new Set((options.jsonHookNames || []).concat(hooks_1.HOOKS.METADATA));
74
- if (metadataHooks.has(hook.callee.name)) {
75
- try {
76
- component.meta[hook.callee.name] = __assign(__assign({}, (component.meta[hook.callee.name] || {})), (0, helpers_1.parseCodeJson)(hook.arguments[0]));
77
- return false;
78
- }
79
- catch (e) {
80
- console.error("Error parsing metadata hook ".concat(hook.callee.name));
81
- throw e;
82
- }
83
- }
84
- else if (hook.callee.name === hooks_1.HOOKS.STYLE) {
85
- component.style = generateUseStyleCode(hook);
55
+ const collectModuleScopeHooks = (component, options) => (nodes) => nodes.filter((node) => {
56
+ const hook = (0, helpers_2.getHook)(node);
57
+ if (!hook) {
58
+ return true;
59
+ }
60
+ if (types.isIdentifier(hook.callee)) {
61
+ const metadataHooks = new Set((options.jsonHookNames || []).concat(hooks_1.HOOKS.METADATA));
62
+ if (metadataHooks.has(hook.callee.name)) {
63
+ try {
64
+ component.meta[hook.callee.name] = {
65
+ ...(component.meta[hook.callee.name] || {}),
66
+ ...(0, helpers_1.parseCodeJson)(hook.arguments[0]),
67
+ };
86
68
  return false;
87
69
  }
88
- else if (hook.callee.name === hooks_1.HOOKS.DEFAULT_PROPS) {
89
- parseDefaultPropsHook(component, hook);
70
+ catch (e) {
71
+ console.error(`Error parsing metadata hook ${hook.callee.name}`);
72
+ throw e;
90
73
  }
91
74
  }
92
- return true;
93
- });
94
- }; };
75
+ else if (hook.callee.name === hooks_1.HOOKS.STYLE) {
76
+ component.style = generateUseStyleCode(hook);
77
+ return false;
78
+ }
79
+ else if (hook.callee.name === hooks_1.HOOKS.DEFAULT_PROPS) {
80
+ parseDefaultPropsHook(component, hook);
81
+ }
82
+ }
83
+ return true;
84
+ });
95
85
  exports.collectModuleScopeHooks = collectModuleScopeHooks;