@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,31 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.replaceSlotsInString = exports.toKebabSlot = exports.stripSlotPrefix = exports.isSlotProperty = void 0;
4
- var core_1 = require("@babel/core");
5
- var function_1 = require("fp-ts/function");
6
- var lodash_1 = require("lodash");
7
- var babel_transform_1 = require("./babel-transform");
8
- var SLOT_PREFIX = 'slot';
9
- var isSlotProperty = function (key, slotPrefix) {
10
- if (slotPrefix === void 0) { slotPrefix = SLOT_PREFIX; }
11
- return key.startsWith(slotPrefix);
12
- };
4
+ const core_1 = require("@babel/core");
5
+ const function_1 = require("fp-ts/function");
6
+ const lodash_1 = require("lodash");
7
+ const babel_transform_1 = require("./babel-transform");
8
+ const SLOT_PREFIX = 'slot';
9
+ const isSlotProperty = (key, slotPrefix = SLOT_PREFIX) => key.startsWith(slotPrefix);
13
10
  exports.isSlotProperty = isSlotProperty;
14
- var stripSlotPrefix = function (key, slotPrefix) {
15
- if (slotPrefix === void 0) { slotPrefix = SLOT_PREFIX; }
16
- return (0, exports.isSlotProperty)(key, slotPrefix) ? key.substring(slotPrefix.length) : key;
17
- };
11
+ const stripSlotPrefix = (key, slotPrefix = SLOT_PREFIX) => (0, exports.isSlotProperty)(key, slotPrefix) ? key.substring(slotPrefix.length) : key;
18
12
  exports.stripSlotPrefix = stripSlotPrefix;
19
- var toKebabSlot = function (key, slotPrefix) {
20
- if (slotPrefix === void 0) { slotPrefix = SLOT_PREFIX; }
21
- return (0, function_1.pipe)((0, exports.stripSlotPrefix)(key, slotPrefix), lodash_1.kebabCase);
22
- };
13
+ const toKebabSlot = (key, slotPrefix = SLOT_PREFIX) => (0, function_1.pipe)((0, exports.stripSlotPrefix)(key, slotPrefix), lodash_1.kebabCase);
23
14
  exports.toKebabSlot = toKebabSlot;
24
15
  function replaceSlotsInString(code, mapper) {
25
16
  return (0, babel_transform_1.babelTransformExpression)(code, {
26
- Identifier: function (path) {
27
- var name = path.node.name;
28
- var isSlot = (0, exports.isSlotProperty)(name);
17
+ Identifier(path) {
18
+ const name = path.node.name;
19
+ const isSlot = (0, exports.isSlotProperty)(name);
29
20
  if (isSlot) {
30
21
  path.replaceWith(core_1.types.identifier(mapper((0, exports.stripSlotPrefix)(name).toLowerCase())));
31
22
  }
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkHasState = void 0;
4
- var checkHasState = function (component) {
5
- return Boolean(Object.keys(component.state).length);
6
- };
4
+ const checkHasState = (component) => Boolean(Object.keys(component.state).length);
7
5
  exports.checkHasState = checkHasState;
@@ -4,17 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.stripMetaProperties = void 0;
7
- var legacy_1 = __importDefault(require("neotraverse/legacy"));
8
- var is_mitosis_node_1 = require("./is-mitosis-node");
9
- var stripMetaProperties = function (json) {
10
- (0, legacy_1.default)(json).forEach(function (item) {
7
+ const legacy_1 = __importDefault(require("neotraverse/legacy"));
8
+ const is_mitosis_node_1 = require("./is-mitosis-node");
9
+ const stripMetaProperties = (json) => {
10
+ (0, legacy_1.default)(json).forEach((item) => {
11
11
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
12
- for (var property in item.properties) {
12
+ for (const property in item.properties) {
13
13
  if (property.startsWith('$')) {
14
14
  delete item.properties[property];
15
15
  }
16
16
  }
17
- for (var property in item.bindings) {
17
+ for (const property in item.bindings) {
18
18
  if (property.startsWith('$')) {
19
19
  delete item.bindings[property];
20
20
  }
@@ -1,19 +1,8 @@
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.stripStateAndPropsRefs = exports.DO_NOT_USE_VARS_TRANSFORMS = exports.DO_NOT_USE_CONTEXT_VARS_TRANSFORMS = void 0;
15
- var replace_identifiers_1 = require("./replace-identifiers");
16
- var DEFAULT_OPTIONS = {
4
+ const replace_identifiers_1 = require("./replace-identifiers");
5
+ const DEFAULT_OPTIONS = {
17
6
  replaceWith: '',
18
7
  includeProps: true,
19
8
  includeState: true,
@@ -24,9 +13,8 @@ var DEFAULT_OPTIONS = {
24
13
  *
25
14
  * If you need to re-use this, re-create it as an AST tranform first.
26
15
  */
27
- var DO_NOT_USE_CONTEXT_VARS_TRANSFORMS = function (_a) {
28
- var code = _a.code, contextVars = _a.contextVars, context = _a.context;
29
- contextVars === null || contextVars === void 0 ? void 0 : contextVars.forEach(function (_var) {
16
+ const DO_NOT_USE_CONTEXT_VARS_TRANSFORMS = ({ code, contextVars, context, }) => {
17
+ contextVars === null || contextVars === void 0 ? void 0 : contextVars.forEach((_var) => {
30
18
  code = code.replace(
31
19
  // determine expression edge cases - https://regex101.com/r/iNcTSM/1
32
20
  new RegExp('(^|\\n|\\r| |;|\\(|\\[|!)' + _var + '(\\?\\.|\\.|\\(| |;|\\)|$)', 'g'), '$1' + context + _var + '$2');
@@ -40,21 +28,20 @@ exports.DO_NOT_USE_CONTEXT_VARS_TRANSFORMS = DO_NOT_USE_CONTEXT_VARS_TRANSFORMS;
40
28
  *
41
29
  * If you need to re-use a part of this, re-create it as an AST tranform first.
42
30
  */
43
- var DO_NOT_USE_VARS_TRANSFORMS = function (newCode, _a) {
44
- var _b = _a.context, context = _b === void 0 ? 'this.' : _b, domRefs = _a.domRefs, outputVars = _a.outputVars, stateVars = _a.stateVars, contextVars = _a.contextVars;
45
- newCode = (0, exports.DO_NOT_USE_CONTEXT_VARS_TRANSFORMS)({ code: newCode, context: context, contextVars: contextVars });
46
- outputVars === null || outputVars === void 0 ? void 0 : outputVars.forEach(function (_var) {
31
+ const DO_NOT_USE_VARS_TRANSFORMS = (newCode, { context = 'this.', domRefs, outputVars, stateVars, contextVars }) => {
32
+ newCode = (0, exports.DO_NOT_USE_CONTEXT_VARS_TRANSFORMS)({ code: newCode, context, contextVars });
33
+ outputVars === null || outputVars === void 0 ? void 0 : outputVars.forEach((_var) => {
47
34
  // determine expression edge cases onMessage( to this.onMessage.emit(
48
- var regexp = '(^|\\s|;|\\()(props\\.?)' + _var + '\\(';
49
- var replacer = '$1' + context + _var + '.emit(';
35
+ const regexp = '(^|\\s|;|\\()(props\\.?)' + _var + '\\(';
36
+ const replacer = '$1' + context + _var + '.emit(';
50
37
  newCode = newCode.replace(new RegExp(regexp, 'g'), replacer);
51
38
  });
52
- var matchPropertyAccessorsArguments = '\\?\\.|,|\\.|\\(| |;|\\)|\\]|$'; // foo?.stuff | foo) | foo | foo] etc.
53
- var matchVariableUseInClass = '^|\\n|\\r| |;|\\(|\\[|!|,'; // foo | (foo | !foo | foo, | [foo etc.
54
- domRefs === null || domRefs === void 0 ? void 0 : domRefs.forEach(function (_var) {
55
- newCode = newCode.replace(new RegExp("(".concat(matchVariableUseInClass, ")").concat(_var, "(").concat(matchPropertyAccessorsArguments, ")"), 'g'), '$1' + 'this.' + _var + '$2');
39
+ const matchPropertyAccessorsArguments = '\\?\\.|,|\\.|\\(| |;|\\)|\\]|$'; // foo?.stuff | foo) | foo | foo] etc.
40
+ const matchVariableUseInClass = '^|\\n|\\r| |;|\\(|\\[|!|,'; // foo | (foo | !foo | foo, | [foo etc.
41
+ domRefs === null || domRefs === void 0 ? void 0 : domRefs.forEach((_var) => {
42
+ newCode = newCode.replace(new RegExp(`(${matchVariableUseInClass})${_var}(${matchPropertyAccessorsArguments})`, 'g'), '$1' + 'this.' + _var + '$2');
56
43
  });
57
- stateVars === null || stateVars === void 0 ? void 0 : stateVars.forEach(function (_var) {
44
+ stateVars === null || stateVars === void 0 ? void 0 : stateVars.forEach((_var) => {
58
45
  newCode = newCode.replace(
59
46
  /*
60
47
  1. Skip anything that is a class variable declaration
@@ -66,7 +53,7 @@ var DO_NOT_USE_VARS_TRANSFORMS = function (newCode, _a) {
66
53
  stuff = function stuff() {} or get stuff
67
54
  3. If the conditions are met then try to match all use cases of the class variables, see above.
68
55
  */
69
- new RegExp("(?!^".concat(_var, "|^ ").concat(_var, ")(?<!function|get)(").concat(matchVariableUseInClass, ")").concat(_var, "(").concat(matchPropertyAccessorsArguments, ")"), 'g'), '$1' + 'this.' + _var + '$2');
56
+ new RegExp(`(?!^${_var}|^ ${_var})(?<!function|get)(${matchVariableUseInClass})${_var}(${matchPropertyAccessorsArguments})`, 'g'), '$1' + 'this.' + _var + '$2');
70
57
  });
71
58
  return newCode;
72
59
  };
@@ -78,10 +65,12 @@ exports.DO_NOT_USE_VARS_TRANSFORMS = DO_NOT_USE_VARS_TRANSFORMS;
78
65
  * This is for support for frameworks like Vue, Svelte, liquid, etc
79
66
  *
80
67
  */
81
- var stripStateAndPropsRefs = function (code, _options) {
82
- if (_options === void 0) { _options = {}; }
83
- var newCode = code || '';
84
- var _a = __assign(__assign({}, DEFAULT_OPTIONS), _options), replaceWith = _a.replaceWith, includeProps = _a.includeProps, includeState = _a.includeState;
68
+ const stripStateAndPropsRefs = (code, _options = {}) => {
69
+ let newCode = code || '';
70
+ const { replaceWith, includeProps, includeState } = {
71
+ ...DEFAULT_OPTIONS,
72
+ ..._options,
73
+ };
85
74
  if (includeProps !== false) {
86
75
  newCode = (0, replace_identifiers_1.replacePropsIdentifier)(replaceWith)(newCode);
87
76
  // TODO: webcomponent edge-case
@@ -4,51 +4,50 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.collectCss = void 0;
7
- var legacy_1 = __importDefault(require("neotraverse/legacy"));
8
- var object_hash_1 = __importDefault(require("object-hash"));
9
- var dash_case_1 = require("../dash-case");
10
- var is_mitosis_node_1 = require("../is-mitosis-node");
11
- var helpers_1 = require("./helpers");
12
- var trimClassStr = function (classStr) { return classStr.trim().replace(/\s{2,}/g, ' '); };
13
- var updateClassForNode = function (item, className) {
7
+ const legacy_1 = __importDefault(require("neotraverse/legacy"));
8
+ const object_hash_1 = __importDefault(require("object-hash"));
9
+ const dash_case_1 = require("../dash-case");
10
+ const is_mitosis_node_1 = require("../is-mitosis-node");
11
+ const helpers_1 = require("./helpers");
12
+ const trimClassStr = (classStr) => classStr.trim().replace(/\s{2,}/g, ' ');
13
+ const updateClassForNode = (item, className) => {
14
14
  if (item.bindings.class) {
15
15
  // combine className with existing binding. We use single quotes because in Vue, bindings are wrapped in double quotes
16
16
  // e.g. <div :class="_classStringToObject(this.className + ' div-21azgz5avex')" />
17
- item.bindings.class.code = trimClassStr("".concat(item.bindings.class.code, " + ' ").concat(className, "'"));
17
+ item.bindings.class.code = trimClassStr(`${item.bindings.class.code} + ' ${className}'`);
18
18
  }
19
19
  else {
20
- item.properties.class = trimClassStr("".concat(item.properties.class || '', " ").concat(className));
20
+ item.properties.class = trimClassStr(`${item.properties.class || ''} ${className}`);
21
21
  }
22
22
  };
23
- var collectStyles = function (json, options) {
24
- if (options === void 0) { options = {}; }
25
- var styleMap = {};
26
- var componentIndexes = {};
27
- var componentHashes = {};
23
+ const collectStyles = (json, options = {}) => {
24
+ const styleMap = {};
25
+ const componentIndexes = {};
26
+ const componentHashes = {};
28
27
  (0, legacy_1.default)(json).forEach(function (item) {
29
28
  var _a;
30
29
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
31
30
  if ((0, helpers_1.nodeHasCss)(item)) {
32
- var value = (0, helpers_1.parseCssObject)((_a = item.bindings.css) === null || _a === void 0 ? void 0 : _a.code);
31
+ const value = (0, helpers_1.parseCssObject)((_a = item.bindings.css) === null || _a === void 0 ? void 0 : _a.code);
33
32
  delete item.bindings.css;
34
- var componentName = item.properties.$name
33
+ const componentName = item.properties.$name
35
34
  ? (0, dash_case_1.dashCase)(item.properties.$name)
36
35
  : /^h\d$/.test(item.name || '') // don't dashcase h1 into h-1
37
36
  ? item.name
38
37
  : (0, dash_case_1.dashCase)(item.name || 'div');
39
- var classNameWPrefix = "".concat(componentName).concat(options.prefix ? "-".concat(options.prefix) : '');
40
- var stylesHash = (0, object_hash_1.default)(value);
38
+ const classNameWPrefix = `${componentName}${options.prefix ? `-${options.prefix}` : ''}`;
39
+ const stylesHash = (0, object_hash_1.default)(value);
41
40
  if (componentHashes[componentName] === stylesHash) {
42
- var className_1 = classNameWPrefix;
43
- updateClassForNode(item, className_1);
41
+ const className = classNameWPrefix;
42
+ updateClassForNode(item, className);
44
43
  return;
45
44
  }
46
45
  if (!componentHashes[componentName]) {
47
46
  componentHashes[componentName] = stylesHash;
48
47
  }
49
- var index = (componentIndexes[componentName] =
48
+ const index = (componentIndexes[componentName] =
50
49
  (componentIndexes[componentName] || 0) + 1);
51
- var className = "".concat(classNameWPrefix).concat(index === 1 ? '' : "-".concat(index));
50
+ const className = `${classNameWPrefix}${index === 1 ? '' : `-${index}`}`;
52
51
  updateClassForNode(item, className);
53
52
  styleMap[className] = value;
54
53
  }
@@ -57,44 +56,40 @@ var collectStyles = function (json, options) {
57
56
  });
58
57
  return styleMap;
59
58
  };
60
- var collectCss = function (json, options) {
59
+ const collectCss = (json, options = {}) => {
61
60
  var _a;
62
- if (options === void 0) { options = {}; }
63
- var styles = collectStyles(json, options);
61
+ const styles = collectStyles(json, options);
64
62
  // TODO create and use a root selector
65
- var css = '';
66
- css += !!((_a = json.style) === null || _a === void 0 ? void 0 : _a.length) ? "".concat(json.style, "\n") : '';
63
+ let css = '';
64
+ css += !!((_a = json.style) === null || _a === void 0 ? void 0 : _a.length) ? `${json.style}\n` : '';
67
65
  css += classStyleMapToCss(styles);
68
66
  return css;
69
67
  };
70
68
  exports.collectCss = collectCss;
71
- var classStyleMapToCss = function (map) {
72
- var str = '';
73
- var _loop_1 = function (key) {
74
- var styles = (0, helpers_1.getStylesOnly)(map[key]);
75
- str += ".".concat(key, " {\n").concat((0, helpers_1.styleMapToCss)(styles), "\n}");
76
- var nestedSelectors = (0, helpers_1.getNestedSelectors)(map[key]);
77
- for (var nestedSelector in nestedSelectors) {
78
- var value = nestedSelectors[nestedSelector];
69
+ const classStyleMapToCss = (map) => {
70
+ let str = '';
71
+ for (const key in map) {
72
+ const styles = (0, helpers_1.getStylesOnly)(map[key]);
73
+ str += `.${key} {\n${(0, helpers_1.styleMapToCss)(styles)}\n}`;
74
+ const nestedSelectors = (0, helpers_1.getNestedSelectors)(map[key]);
75
+ for (const nestedSelector in nestedSelectors) {
76
+ const value = nestedSelectors[nestedSelector];
79
77
  if (nestedSelector.startsWith('@')) {
80
- str += "".concat(nestedSelector, " { .").concat(key, " { ").concat((0, helpers_1.styleMapToCss)(value), " } }");
78
+ str += `${nestedSelector} { .${key} { ${(0, helpers_1.styleMapToCss)(value)} } }`;
81
79
  }
82
80
  else {
83
- var getSelector = function (nestedSelector) {
81
+ const getSelector = (nestedSelector) => {
84
82
  if (nestedSelector.startsWith(':')) {
85
- return ".".concat(key).concat(nestedSelector);
83
+ return `.${key}${nestedSelector}`;
86
84
  }
87
85
  if (nestedSelector.includes('&')) {
88
- return nestedSelector.replace(/&/g, ".".concat(key));
86
+ return nestedSelector.replace(/&/g, `.${key}`);
89
87
  }
90
- return ".".concat(key, " ").concat(nestedSelector);
88
+ return `.${key} ${nestedSelector}`;
91
89
  };
92
- str += "".concat(getSelector(nestedSelector), " {\n").concat((0, helpers_1.styleMapToCss)(value), "\n}");
90
+ str += `${getSelector(nestedSelector)} {\n${(0, helpers_1.styleMapToCss)(value)}\n}`;
93
91
  }
94
92
  }
95
- };
96
- for (var key in map) {
97
- _loop_1(key);
98
93
  }
99
94
  return str;
100
95
  };
@@ -4,54 +4,56 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.collectStyledComponents = void 0;
7
- var lodash_1 = require("lodash");
8
- var legacy_1 = __importDefault(require("neotraverse/legacy"));
9
- var object_hash_1 = __importDefault(require("object-hash"));
10
- var capitalize_1 = require("../capitalize");
11
- var is_mitosis_node_1 = require("../is-mitosis-node");
12
- var is_upper_case_1 = require("../is-upper-case");
13
- var helpers_1 = require("./helpers");
14
- var collectStyledComponents = function (json) {
15
- var styledComponentsCode = '';
16
- var componentIndexes = {};
17
- var componentHashes = {};
7
+ const lodash_1 = require("lodash");
8
+ const legacy_1 = __importDefault(require("neotraverse/legacy"));
9
+ const object_hash_1 = __importDefault(require("object-hash"));
10
+ const capitalize_1 = require("../capitalize");
11
+ const is_mitosis_node_1 = require("../is-mitosis-node");
12
+ const is_upper_case_1 = require("../is-upper-case");
13
+ const helpers_1 = require("./helpers");
14
+ const collectStyledComponents = (json) => {
15
+ let styledComponentsCode = '';
16
+ const componentIndexes = {};
17
+ const componentHashes = {};
18
18
  (0, legacy_1.default)(json).forEach(function (item) {
19
19
  var _a;
20
20
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
21
21
  if ((0, helpers_1.nodeHasCss)(item)) {
22
- var value = (0, helpers_1.parseCssObject)((_a = item.bindings.css) === null || _a === void 0 ? void 0 : _a.code);
22
+ const value = (0, helpers_1.parseCssObject)((_a = item.bindings.css) === null || _a === void 0 ? void 0 : _a.code);
23
23
  delete item.bindings.css;
24
- var normalizedNameProperty = item.properties.$name
24
+ const normalizedNameProperty = item.properties.$name
25
25
  ? (0, capitalize_1.capitalize)((0, lodash_1.camelCase)(item.properties.$name.replace(/[^a-z]/gi, '')))
26
26
  : null;
27
- var componentName = normalizedNameProperty
27
+ const componentName = normalizedNameProperty
28
28
  ? normalizedNameProperty
29
29
  : /^h\d$/.test(item.name || '')
30
30
  ? item.name
31
31
  : (0, capitalize_1.capitalize)((0, lodash_1.camelCase)(item.name || 'div'));
32
- var index = (componentIndexes[componentName] =
32
+ const index = (componentIndexes[componentName] =
33
33
  (componentIndexes[componentName] || 0) + 1);
34
- var className = "".concat(componentName).concat(componentName !== item.name && index === 1 ? '' : index);
35
- var str = '';
36
- var styles = (0, helpers_1.getStylesOnly)(value);
37
- var stylesHash = (0, object_hash_1.default)(styles);
34
+ const className = `${componentName}${componentName !== item.name && index === 1 ? '' : index}`;
35
+ let str = '';
36
+ const styles = (0, helpers_1.getStylesOnly)(value);
37
+ const stylesHash = (0, object_hash_1.default)(styles);
38
38
  if (stylesHash === componentHashes[componentName]) {
39
39
  return;
40
40
  }
41
41
  if (!componentHashes[componentName]) {
42
42
  componentHashes[componentName] = stylesHash;
43
43
  }
44
- str += "".concat((0, helpers_1.styleMapToCss)(styles), "\n");
45
- var nestedSelectors = (0, helpers_1.getNestedSelectors)(value);
46
- for (var nestedSelector in nestedSelectors) {
47
- var value_1 = nestedSelectors[nestedSelector];
48
- str += "".concat(nestedSelector, " { ").concat((0, helpers_1.styleMapToCss)(value_1), " }");
44
+ str += `${(0, helpers_1.styleMapToCss)(styles)}\n`;
45
+ const nestedSelectors = (0, helpers_1.getNestedSelectors)(value);
46
+ for (const nestedSelector in nestedSelectors) {
47
+ const value = nestedSelectors[nestedSelector];
48
+ str += `${nestedSelector} { ${(0, helpers_1.styleMapToCss)(value)} }`;
49
49
  }
50
- var prefix = (0, is_upper_case_1.isUpperCase)(item.name[0])
51
- ? "styled(".concat(item.name, ")`")
52
- : "styled.".concat(item.name, "`");
50
+ const prefix = (0, is_upper_case_1.isUpperCase)(item.name[0])
51
+ ? `styled(${item.name})\``
52
+ : `styled.${item.name}\``;
53
53
  item.name = className;
54
- styledComponentsCode += "\n const ".concat(className, " = ").concat(prefix).concat(str, "`;\n ");
54
+ styledComponentsCode += `
55
+ const ${className} = ${prefix}${str}\`;
56
+ `;
55
57
  }
56
58
  delete item.bindings.css;
57
59
  }
@@ -4,26 +4,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.styleMapToCss = exports.parseCssObject = exports.getStylesOnly = exports.getNestedSelectors = exports.hasStyle = exports.hasCss = exports.nodeHasStyle = exports.nodeHasCss = void 0;
7
- var json5_1 = __importDefault(require("json5"));
8
- var lodash_1 = require("lodash");
9
- var legacy_1 = __importDefault(require("neotraverse/legacy"));
10
- var dash_case_1 = require("../dash-case");
11
- var is_mitosis_node_1 = require("../is-mitosis-node");
12
- var is_upper_case_1 = require("../is-upper-case");
13
- var nodeHasCss = function (node) {
7
+ const json5_1 = __importDefault(require("json5"));
8
+ const lodash_1 = require("lodash");
9
+ const legacy_1 = __importDefault(require("neotraverse/legacy"));
10
+ const dash_case_1 = require("../dash-case");
11
+ const is_mitosis_node_1 = require("../is-mitosis-node");
12
+ const is_upper_case_1 = require("../is-upper-case");
13
+ const nodeHasCss = (node) => {
14
14
  var _a;
15
15
  return Boolean(typeof ((_a = node.bindings.css) === null || _a === void 0 ? void 0 : _a.code) === 'string' && node.bindings.css.code.trim().length > 6);
16
16
  };
17
17
  exports.nodeHasCss = nodeHasCss;
18
- var nodeHasStyle = function (node) {
18
+ const nodeHasStyle = (node) => {
19
19
  var _a;
20
20
  return (Boolean(typeof ((_a = node.bindings.style) === null || _a === void 0 ? void 0 : _a.code) === 'string') ||
21
21
  Boolean(typeof node.properties.style === 'string'));
22
22
  };
23
23
  exports.nodeHasStyle = nodeHasStyle;
24
- var hasCss = function (component) {
24
+ const hasCss = (component) => {
25
25
  var _a;
26
- var hasStyles = !!((_a = component.style) === null || _a === void 0 ? void 0 : _a.length);
26
+ let hasStyles = !!((_a = component.style) === null || _a === void 0 ? void 0 : _a.length);
27
27
  if (hasStyles) {
28
28
  return true;
29
29
  }
@@ -38,8 +38,8 @@ var hasCss = function (component) {
38
38
  return hasStyles;
39
39
  };
40
40
  exports.hasCss = hasCss;
41
- var hasStyle = function (component) {
42
- var hasStyles = false;
41
+ const hasStyle = (component) => {
42
+ let hasStyles = false;
43
43
  (0, legacy_1.default)(component).forEach(function (item) {
44
44
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
45
45
  if ((0, exports.nodeHasStyle)(item)) {
@@ -51,15 +51,15 @@ var hasStyle = function (component) {
51
51
  return hasStyles;
52
52
  };
53
53
  exports.hasStyle = hasStyle;
54
- var getNestedSelectors = function (map) {
55
- return (0, lodash_1.pickBy)(map, function (value) { return typeof value === 'object'; });
54
+ const getNestedSelectors = (map) => {
55
+ return (0, lodash_1.pickBy)(map, (value) => typeof value === 'object');
56
56
  };
57
57
  exports.getNestedSelectors = getNestedSelectors;
58
- var getStylesOnly = function (map) {
59
- return (0, lodash_1.pickBy)(map, function (value) { return typeof value === 'string'; });
58
+ const getStylesOnly = (map) => {
59
+ return (0, lodash_1.pickBy)(map, (value) => typeof value === 'string');
60
60
  };
61
61
  exports.getStylesOnly = getStylesOnly;
62
- var parseCssObject = function (css) {
62
+ const parseCssObject = (css) => {
63
63
  try {
64
64
  return json5_1.default.parse(css);
65
65
  }
@@ -69,28 +69,22 @@ var parseCssObject = function (css) {
69
69
  }
70
70
  };
71
71
  exports.parseCssObject = parseCssObject;
72
- var getCssPropertyName = function (cssObjectKey) {
72
+ const getCssPropertyName = (cssObjectKey) => {
73
73
  // Allow custom CSS properties
74
74
  if (cssObjectKey.startsWith('--')) {
75
75
  return cssObjectKey;
76
76
  }
77
- var str = (0, dash_case_1.dashCase)(cssObjectKey);
77
+ let str = (0, dash_case_1.dashCase)(cssObjectKey);
78
78
  // Convert vendor prefixes like 'WebkitFoo' to '-webkit-foo'
79
79
  if ((0, is_upper_case_1.isUpperCase)(cssObjectKey[0])) {
80
- str = "-".concat(str);
80
+ str = `-${str}`;
81
81
  }
82
82
  return str;
83
83
  };
84
- var styleMapToCss = function (map) {
84
+ const styleMapToCss = (map) => {
85
85
  return Object.entries(map)
86
- .filter(function (_a) {
87
- var key = _a[0], value = _a[1];
88
- return typeof value === 'string';
89
- })
90
- .map(function (_a) {
91
- var key = _a[0], value = _a[1];
92
- return " ".concat(getCssPropertyName(key), ": ").concat(value, ";");
93
- })
86
+ .filter(([key, value]) => typeof value === 'string')
87
+ .map(([key, value]) => ` ${getCssPropertyName(key)}: ${value};`)
94
88
  .join('\n');
95
89
  };
96
90
  exports.styleMapToCss = styleMapToCss;
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.traceReferenceToModulePath = void 0;
4
4
  function traceReferenceToModulePath(imports, name) {
5
- var response = null;
6
- for (var _i = 0, imports_1 = imports; _i < imports_1.length; _i++) {
7
- var importInfo = imports_1[_i];
5
+ let response = null;
6
+ for (const importInfo of imports) {
8
7
  if (name in importInfo.imports) {
9
- return "".concat(importInfo.path, ":").concat(importInfo.imports[name]);
8
+ return `${importInfo.path}:${importInfo.imports[name]}`;
10
9
  }
11
10
  }
12
11
  return response;
@@ -1,27 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transformStateSetters = void 0;
4
- var core_1 = require("@babel/core");
5
- var babel_transform_1 = require("./babel-transform");
4
+ const core_1 = require("@babel/core");
5
+ const babel_transform_1 = require("./babel-transform");
6
6
  /**
7
7
  * Finds instances of state being set in `value`, and transforms them using the
8
8
  * provided `transformer`.
9
9
  */
10
- var transformStateSetters = function (_a) {
11
- var value = _a.value, transformer = _a.transformer;
12
- return (0, babel_transform_1.babelTransformExpression)(value, {
13
- AssignmentExpression: function (path) {
14
- var node = path.node;
15
- if (core_1.types.isMemberExpression(node.left) &&
16
- core_1.types.isIdentifier(node.left.object) &&
17
- // TODO: utillity to properly trace this reference to the beginning
18
- node.left.object.name === 'state') {
19
- // TODO: ultimately support other property access like strings
20
- var propertyName = node.left.property.name;
21
- var newExpression = transformer({ path: path, propertyName: propertyName });
22
- path.replaceWith(newExpression);
23
- }
24
- },
25
- });
26
- };
10
+ const transformStateSetters = ({ value, transformer, }) => (0, babel_transform_1.babelTransformExpression)(value, {
11
+ AssignmentExpression(path) {
12
+ const { node } = path;
13
+ if (core_1.types.isMemberExpression(node.left) &&
14
+ core_1.types.isIdentifier(node.left.object) &&
15
+ // TODO: utillity to properly trace this reference to the beginning
16
+ node.left.object.name === 'state') {
17
+ // TODO: ultimately support other property access like strings
18
+ const propertyName = node.left.property.name;
19
+ const newExpression = transformer({ path, propertyName });
20
+ path.replaceWith(newExpression);
21
+ }
22
+ },
23
+ });
27
24
  exports.transformStateSetters = transformStateSetters;
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.traverseNodes = void 0;
7
- var legacy_1 = __importDefault(require("neotraverse/legacy"));
8
- var is_mitosis_node_1 = require("./is-mitosis-node");
7
+ const legacy_1 = __importDefault(require("neotraverse/legacy"));
8
+ const is_mitosis_node_1 = require("./is-mitosis-node");
9
9
  function traverseNodes(component, cb) {
10
10
  (0, legacy_1.default)(component).forEach(function (item) {
11
11
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryPrettierFormat = void 0;
4
- var standalone_1 = require("prettier/standalone");
5
- var tryPrettierFormat = function (str, parser) {
4
+ const standalone_1 = require("prettier/standalone");
5
+ const tryPrettierFormat = (str, parser) => {
6
6
  try {
7
7
  return (0, standalone_1.format)(str, {
8
- parser: parser,
8
+ parser,
9
9
  plugins: [
10
10
  // To support running in browsers
11
11
  require('prettier/parser-typescript'),