@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
@@ -18,13 +18,12 @@ exports.sizes = {
18
18
  default: 991,
19
19
  max: 1200,
20
20
  },
21
- getWidthForSize: function (size) {
21
+ getWidthForSize(size) {
22
22
  return this[size].default;
23
23
  },
24
- getSizeForWidth: function (width) {
25
- for (var _i = 0, sizeNames_1 = exports.sizeNames; _i < sizeNames_1.length; _i++) {
26
- var size = sizeNames_1[_i];
27
- var value = this[size];
24
+ getSizeForWidth(width) {
25
+ for (const size of exports.sizeNames) {
26
+ const value = this[size];
28
27
  if (width <= value.max) {
29
28
  return size;
30
29
  }
@@ -1,46 +1,32 @@
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.componentToAlpine = exports.isValidAlpineBinding = exports.checkIsComponentNode = void 0;
15
- var babel_transform_1 = require("../../helpers/babel-transform");
16
- var dash_case_1 = require("../../helpers/dash-case");
17
- var fast_clone_1 = require("../../helpers/fast-clone");
18
- var get_refs_1 = require("../../helpers/get-refs");
19
- var get_state_object_string_1 = require("../../helpers/get-state-object-string");
20
- var merge_options_1 = require("../../helpers/merge-options");
21
- var remove_surrounding_block_1 = require("../../helpers/remove-surrounding-block");
22
- var replace_identifiers_1 = require("../../helpers/replace-identifiers");
23
- var strip_meta_properties_1 = require("../../helpers/strip-meta-properties");
24
- var strip_state_and_props_refs_1 = require("../../helpers/strip-state-and-props-refs");
25
- var collect_css_1 = require("../../helpers/styles/collect-css");
26
- var mitosis_node_1 = require("../../types/mitosis-node");
27
- var lodash_1 = require("lodash");
28
- var standalone_1 = require("prettier/standalone");
29
- var html_tags_1 = require("../../constants/html_tags");
30
- var plugins_1 = require("../../modules/plugins");
31
- var render_mount_hook_1 = require("./render-mount-hook");
32
- var render_update_hooks_1 = require("./render-update-hooks");
33
- var checkIsComponentNode = function (node) {
34
- return node.name === '@builder.io/mitosis/component';
35
- };
4
+ const babel_transform_1 = require("../../helpers/babel-transform");
5
+ const dash_case_1 = require("../../helpers/dash-case");
6
+ const fast_clone_1 = require("../../helpers/fast-clone");
7
+ const get_refs_1 = require("../../helpers/get-refs");
8
+ const get_state_object_string_1 = require("../../helpers/get-state-object-string");
9
+ const merge_options_1 = require("../../helpers/merge-options");
10
+ const remove_surrounding_block_1 = require("../../helpers/remove-surrounding-block");
11
+ const replace_identifiers_1 = require("../../helpers/replace-identifiers");
12
+ const strip_meta_properties_1 = require("../../helpers/strip-meta-properties");
13
+ const strip_state_and_props_refs_1 = require("../../helpers/strip-state-and-props-refs");
14
+ const collect_css_1 = require("../../helpers/styles/collect-css");
15
+ const mitosis_node_1 = require("../../types/mitosis-node");
16
+ const lodash_1 = require("lodash");
17
+ const standalone_1 = require("prettier/standalone");
18
+ const html_tags_1 = require("../../constants/html_tags");
19
+ const plugins_1 = require("../../modules/plugins");
20
+ const render_mount_hook_1 = require("./render-mount-hook");
21
+ const render_update_hooks_1 = require("./render-update-hooks");
22
+ const checkIsComponentNode = (node) => node.name === '@builder.io/mitosis/component';
36
23
  exports.checkIsComponentNode = checkIsComponentNode;
37
24
  /**
38
25
  * Test if the binding expression would be likely to generate
39
26
  * valid or invalid liquid. If we generate invalid liquid tags
40
27
  * Shopify will reject our PUT to update the template
41
28
  */
42
- var isValidAlpineBinding = function (str) {
43
- if (str === void 0) { str = ''; }
29
+ const isValidAlpineBinding = (str = '') => {
44
30
  return true;
45
31
  /*
46
32
  const strictMatches = Boolean(
@@ -58,57 +44,53 @@ var isValidAlpineBinding = function (str) {
58
44
  */
59
45
  };
60
46
  exports.isValidAlpineBinding = isValidAlpineBinding;
61
- var removeOnFromEventName = function (str) { return str.replace(/^on/, ''); };
62
- var removeTrailingSemicolon = function (str) { return str.replace(/;$/, ''); };
63
- var trim = function (str) { return str.trim(); };
64
- var replaceInputRefs = (0, lodash_1.curry)(function (json, str) {
65
- (0, get_refs_1.getRefs)(json).forEach(function (value) {
66
- str = str.replaceAll(value, "this.$refs.".concat(value));
47
+ const removeOnFromEventName = (str) => str.replace(/^on/, '');
48
+ const removeTrailingSemicolon = (str) => str.replace(/;$/, '');
49
+ const trim = (str) => str.trim();
50
+ const replaceInputRefs = (0, lodash_1.curry)((json, str) => {
51
+ (0, get_refs_1.getRefs)(json).forEach((value) => {
52
+ str = str.replaceAll(value, `this.$refs.${value}`);
67
53
  });
68
54
  return str;
69
55
  });
70
- var replaceStateWithThis = function (str) { return str.replaceAll('state.', 'this.'); };
71
- var getStateObjectString = function (json) {
72
- return (0, lodash_1.flow)(get_state_object_string_1.getStateObjectStringFromComponent, trim, replaceInputRefs(json), (0, render_mount_hook_1.renderMountHook)(json), (0, render_update_hooks_1.renderUpdateHooks)(json), replaceStateWithThis,
73
- // cleanup bad regexes that result in malformed JSON strings that start with `{,`
74
- function (x) { return (x.startsWith('{,') ? x.replace('{,', '{') : x); })(json);
75
- };
76
- var bindEventHandlerKey = (0, lodash_1.flowRight)(dash_case_1.dashCase, removeOnFromEventName);
77
- var bindEventHandlerValue = (0, lodash_1.flowRight)(function (x) {
78
- return (0, replace_identifiers_1.replaceIdentifiers)({
79
- code: x,
80
- from: 'event',
81
- to: '$event',
82
- });
83
- }, removeTrailingSemicolon, trim, remove_surrounding_block_1.removeSurroundingBlock, strip_state_and_props_refs_1.stripStateAndPropsRefs);
84
- var bindEventHandler = function (_a) {
85
- var useShorthandSyntax = _a.useShorthandSyntax;
86
- return function (eventName, code) {
87
- var bind = useShorthandSyntax ? '@' : 'x-on:';
88
- return " ".concat(bind).concat(bindEventHandlerKey(eventName), "=\"").concat(bindEventHandlerValue(code).trim(), "\"");
89
- };
56
+ const replaceStateWithThis = (str) => str.replaceAll('state.', 'this.');
57
+ const getStateObjectString = (json) => (0, lodash_1.flow)(get_state_object_string_1.getStateObjectStringFromComponent, trim, replaceInputRefs(json), (0, render_mount_hook_1.renderMountHook)(json), (0, render_update_hooks_1.renderUpdateHooks)(json), replaceStateWithThis,
58
+ // cleanup bad regexes that result in malformed JSON strings that start with `{,`
59
+ (x) => (x.startsWith('{,') ? x.replace('{,', '{') : x))(json);
60
+ const bindEventHandlerKey = (0, lodash_1.flowRight)(dash_case_1.dashCase, removeOnFromEventName);
61
+ const bindEventHandlerValue = (0, lodash_1.flowRight)((x) => (0, replace_identifiers_1.replaceIdentifiers)({
62
+ code: x,
63
+ from: 'event',
64
+ to: '$event',
65
+ }), removeTrailingSemicolon, trim, remove_surrounding_block_1.removeSurroundingBlock, strip_state_and_props_refs_1.stripStateAndPropsRefs);
66
+ const bindEventHandler = ({ useShorthandSyntax }) => (eventName, code) => {
67
+ const bind = useShorthandSyntax ? '@' : 'x-on:';
68
+ return ` ${bind}${bindEventHandlerKey(eventName)}="${bindEventHandlerValue(code).trim()}"`;
90
69
  };
91
- var mappers = {
92
- For: function (json, options) {
70
+ const mappers = {
71
+ For: (json, options) => {
93
72
  var _a, _b, _c;
94
73
  return !((0, mitosis_node_1.checkIsForNode)(json) &&
95
74
  (0, exports.isValidAlpineBinding)((_a = json.bindings.each) === null || _a === void 0 ? void 0 : _a.code) &&
96
75
  (0, exports.isValidAlpineBinding)(json.scope.forName))
97
76
  ? ''
98
- : "<template x-for=\"".concat(json.scope.forName, " in ").concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_b = json.bindings.each) === null || _b === void 0 ? void 0 : _b.code), "\">\n ").concat(((_c = json.children) !== null && _c !== void 0 ? _c : []).map(function (item) { return blockToAlpine(item, options); }).join('\n'), "\n </template>");
77
+ : `<template x-for="${json.scope.forName} in ${(0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_b = json.bindings.each) === null || _b === void 0 ? void 0 : _b.code)}">
78
+ ${((_c = json.children) !== null && _c !== void 0 ? _c : []).map((item) => blockToAlpine(item, options)).join('\n')}
79
+ </template>`;
99
80
  },
100
- Fragment: function (json, options) { return blockToAlpine(__assign(__assign({}, json), { name: 'div' }), options); },
101
- Show: function (json, options) {
81
+ Fragment: (json, options) => blockToAlpine({ ...json, name: 'div' }, options),
82
+ Show: (json, options) => {
102
83
  var _a, _b, _c;
103
84
  return !(0, exports.isValidAlpineBinding)((_a = json.bindings.when) === null || _a === void 0 ? void 0 : _a.code)
104
85
  ? ''
105
- : "<template x-if=\"".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_b = json.bindings.when) === null || _b === void 0 ? void 0 : _b.code), "\">\n ").concat(((_c = json.children) !== null && _c !== void 0 ? _c : []).map(function (item) { return blockToAlpine(item, options); }).join('\n'), "\n </template>");
86
+ : `<template x-if="${(0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_b = json.bindings.when) === null || _b === void 0 ? void 0 : _b.code)}">
87
+ ${((_c = json.children) !== null && _c !== void 0 ? _c : []).map((item) => blockToAlpine(item, options)).join('\n')}
88
+ </template>`;
106
89
  },
107
90
  };
108
91
  // TODO: spread support
109
- var blockToAlpine = function (json, options) {
92
+ const blockToAlpine = (json, options = {}) => {
110
93
  var _a, _b;
111
- if (options === void 0) { options = {}; }
112
94
  if (mappers[json.name]) {
113
95
  return mappers[json.name](json, options);
114
96
  }
@@ -118,10 +100,10 @@ var blockToAlpine = function (json, options) {
118
100
  }
119
101
  if ((_a = json.bindings._text) === null || _a === void 0 ? void 0 : _a.code) {
120
102
  return (0, exports.isValidAlpineBinding)(json.bindings._text.code)
121
- ? "<span x-html=\"".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.bindings._text.code), "\"></span>")
103
+ ? `<span x-html="${(0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.bindings._text.code)}"></span>`
122
104
  : '';
123
105
  }
124
- var str = "<".concat(json.name, " ");
106
+ let str = `<${json.name} `;
125
107
  /*
126
108
  // Copied from the liquid generator. Not sure what it does.
127
109
  if (
@@ -135,84 +117,84 @@ var blockToAlpine = function (json, options) {
135
117
  `;
136
118
  }
137
119
  */
138
- for (var key in json.properties) {
139
- var value = json.properties[key];
140
- str += " ".concat(key, "=\"").concat(value, "\" ");
120
+ for (const key in json.properties) {
121
+ const value = json.properties[key];
122
+ str += ` ${key}="${value}" `;
141
123
  }
142
- for (var key in json.bindings) {
124
+ for (const key in json.bindings) {
143
125
  if (key === '_spread' || key === 'css') {
144
126
  continue;
145
127
  }
146
- var _c = json.bindings[key], value = _c.code, bindingType = _c.type;
128
+ const { code: value, type: bindingType } = json.bindings[key];
147
129
  // TODO: proper babel transform to replace. Util for this
148
- var useValue = (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(value);
130
+ const useValue = (0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(value);
149
131
  if (key.startsWith('on')) {
150
132
  str += bindEventHandler(options)(key, value);
151
133
  }
152
134
  else if (key === 'ref') {
153
- str += " x-ref=\"".concat(useValue, "\"");
135
+ str += ` x-ref="${useValue}"`;
154
136
  }
155
137
  else if ((0, exports.isValidAlpineBinding)(useValue)) {
156
- var bind = options.useShorthandSyntax && bindingType !== 'spread' ? ':' : 'x-bind:';
157
- str += " ".concat(bind).concat(bindingType === 'spread' ? '' : key, "=\"").concat(useValue, "\" ").replace(':=', '=');
138
+ const bind = options.useShorthandSyntax && bindingType !== 'spread' ? ':' : 'x-bind:';
139
+ str += ` ${bind}${bindingType === 'spread' ? '' : key}="${useValue}" `.replace(':=', '=');
158
140
  }
159
141
  }
160
142
  return html_tags_1.SELF_CLOSING_HTML_TAGS.has(json.name)
161
- ? "".concat(str, " />")
162
- : "".concat(str, ">").concat(((_b = json.children) !== null && _b !== void 0 ? _b : []).map(function (item) { return blockToAlpine(item, options); }).join('\n'), "</").concat(json.name, ">");
143
+ ? `${str} />`
144
+ : `${str}>${((_b = json.children) !== null && _b !== void 0 ? _b : []).map((item) => blockToAlpine(item, options)).join('\n')}</${json.name}>`;
163
145
  };
164
- var componentToAlpine = function (_options) {
165
- if (_options === void 0) { _options = {}; }
166
- return function (_a) {
167
- var component = _a.component;
168
- var options = (0, merge_options_1.initializeOptions)({ target: 'alpine', component: component, defaults: _options });
169
- var json = (0, fast_clone_1.fastClone)(component);
170
- if (options.plugins) {
171
- json = (0, plugins_1.runPreJsonPlugins)({ json: json, plugins: options.plugins });
172
- }
173
- var css = (0, collect_css_1.collectCss)(json);
174
- (0, strip_meta_properties_1.stripMetaProperties)(json);
175
- if (options.plugins) {
176
- json = (0, plugins_1.runPostJsonPlugins)({ json: json, plugins: options.plugins });
177
- }
178
- var componentName = (0, lodash_1.camelCase)(json.name) || 'MyComponent';
179
- var stateObjectString = getStateObjectString(json);
180
- // Set x-data on root element
181
- json.children[0].properties['x-data'] = options.inlineState
182
- ? stateObjectString
183
- : "".concat(componentName, "()");
184
- if ((0, render_update_hooks_1.hasRootUpdateHook)(json)) {
185
- json.children[0].properties['x-effect'] = 'onUpdate';
186
- }
187
- var str = css.trim().length ? "<style>".concat(css, "</style>") : '';
188
- str += json.children.map(function (item) { return blockToAlpine(item, options); }).join('\n');
189
- if (!options.inlineState) {
190
- str += "<script>\n ".concat((0, babel_transform_1.babelTransformCode)("document.addEventListener('alpine:init', () => {\n Alpine.data('".concat(componentName, "', () => (").concat(stateObjectString, "))\n })")), "\n </script>");
191
- }
192
- if (options.plugins) {
193
- str = (0, plugins_1.runPreCodePlugins)({ json: json, code: str, plugins: options.plugins });
194
- }
195
- if (options.prettier !== false) {
196
- try {
197
- str = (0, standalone_1.format)(str, {
198
- parser: 'html',
199
- htmlWhitespaceSensitivity: 'ignore',
200
- plugins: [
201
- // To support running in browsers
202
- require('prettier/parser-html'),
203
- require('prettier/parser-postcss'),
204
- require('prettier/parser-babel'),
205
- ],
206
- });
207
- }
208
- catch (err) {
209
- console.warn('Could not prettify', { string: str }, err);
210
- }
146
+ const componentToAlpine = (_options = {}) => ({ component }) => {
147
+ const options = (0, merge_options_1.initializeOptions)({ target: 'alpine', component, defaults: _options });
148
+ let json = (0, fast_clone_1.fastClone)(component);
149
+ if (options.plugins) {
150
+ json = (0, plugins_1.runPreJsonPlugins)({ json, plugins: options.plugins });
151
+ }
152
+ const css = (0, collect_css_1.collectCss)(json);
153
+ (0, strip_meta_properties_1.stripMetaProperties)(json);
154
+ if (options.plugins) {
155
+ json = (0, plugins_1.runPostJsonPlugins)({ json, plugins: options.plugins });
156
+ }
157
+ const componentName = (0, lodash_1.camelCase)(json.name) || 'MyComponent';
158
+ const stateObjectString = getStateObjectString(json);
159
+ // Set x-data on root element
160
+ json.children[0].properties['x-data'] = options.inlineState
161
+ ? stateObjectString
162
+ : `${componentName}()`;
163
+ if ((0, render_update_hooks_1.hasRootUpdateHook)(json)) {
164
+ json.children[0].properties['x-effect'] = 'onUpdate';
165
+ }
166
+ let str = css.trim().length ? `<style>${css}</style>` : '';
167
+ str += json.children.map((item) => blockToAlpine(item, options)).join('\n');
168
+ if (!options.inlineState) {
169
+ str += `<script>
170
+ ${(0, babel_transform_1.babelTransformCode)(`document.addEventListener('alpine:init', () => {
171
+ Alpine.data('${componentName}', () => (${stateObjectString}))
172
+ })`)}
173
+ </script>`;
174
+ }
175
+ if (options.plugins) {
176
+ str = (0, plugins_1.runPreCodePlugins)({ json, code: str, plugins: options.plugins });
177
+ }
178
+ if (options.prettier !== false) {
179
+ try {
180
+ str = (0, standalone_1.format)(str, {
181
+ parser: 'html',
182
+ htmlWhitespaceSensitivity: 'ignore',
183
+ plugins: [
184
+ // To support running in browsers
185
+ require('prettier/parser-html'),
186
+ require('prettier/parser-postcss'),
187
+ require('prettier/parser-babel'),
188
+ ],
189
+ });
211
190
  }
212
- if (options.plugins) {
213
- str = (0, plugins_1.runPostCodePlugins)({ json: json, code: str, plugins: options.plugins });
191
+ catch (err) {
192
+ console.warn('Could not prettify', { string: str }, err);
214
193
  }
215
- return str;
216
- };
194
+ }
195
+ if (options.plugins) {
196
+ str = (0, plugins_1.runPostCodePlugins)({ json, code: str, plugins: options.plugins });
197
+ }
198
+ return str;
217
199
  };
218
200
  exports.componentToAlpine = componentToAlpine;
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderMountHook = void 0;
4
- var lodash_1 = require("lodash");
5
- var on_mount_1 = require("../helpers/on-mount");
6
- var render_update_hooks_1 = require("./render-update-hooks");
4
+ const lodash_1 = require("lodash");
5
+ const on_mount_1 = require("../helpers/on-mount");
6
+ const render_update_hooks_1 = require("./render-update-hooks");
7
7
  function shouldRenderMountHook(json) {
8
8
  return json.hooks.onMount.length > 0 || (0, render_update_hooks_1.hasWatchHooks)(json);
9
9
  }
10
- exports.renderMountHook = (0, lodash_1.curry)(function (json, objectString) {
10
+ exports.renderMountHook = (0, lodash_1.curry)((json, objectString) => {
11
11
  return shouldRenderMountHook(json)
12
- ? objectString.replace(/(?:,)?(\s*)(}\s*)$/, ", init() {\n ".concat((0, render_update_hooks_1.renderWatchHooks)(json), "\n ").concat((0, on_mount_1.stringifySingleScopeOnMount)(json), "\n }$1$2"))
12
+ ? objectString.replace(/(?:,)?(\s*)(}\s*)$/, `, init() {
13
+ ${(0, render_update_hooks_1.renderWatchHooks)(json)}
14
+ ${(0, on_mount_1.stringifySingleScopeOnMount)(json)}
15
+ }$1$2`)
13
16
  : objectString;
14
17
  });
@@ -1,44 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderWatchHooks = exports.hasWatchHooks = exports.renderUpdateHooks = exports.hasRootUpdateHook = void 0;
4
- var lodash_1 = require("lodash");
5
- var extractCode = function (hook) { return hook.code; };
4
+ const lodash_1 = require("lodash");
5
+ const extractCode = (hook) => hook.code;
6
6
  function renderRootUpdateHook(hooks, output) {
7
7
  if (hooks.length === 0) {
8
8
  return output;
9
9
  }
10
- var str = "onUpdate() {\n ".concat(hooks.map(extractCode).join('\n'), "\n }");
11
- return output.replace(/,?(\s*})$/, ",\n".concat(str, "$1"));
10
+ const str = `onUpdate() {
11
+ ${hooks.map(extractCode).join('\n')}
12
+ }`;
13
+ return output.replace(/,?(\s*})$/, `,\n${str}$1`);
12
14
  }
13
15
  function getRootUpdateHooks(json) {
14
16
  var _a;
15
- return ((_a = json.hooks.onUpdate) !== null && _a !== void 0 ? _a : []).filter(function (hook) { return hook.deps == ''; });
17
+ return ((_a = json.hooks.onUpdate) !== null && _a !== void 0 ? _a : []).filter((hook) => hook.deps == '');
16
18
  }
17
19
  function hasRootUpdateHook(json) {
18
20
  return getRootUpdateHooks(json).length > 0;
19
21
  }
20
22
  exports.hasRootUpdateHook = hasRootUpdateHook;
21
- exports.renderUpdateHooks = (0, lodash_1.curry)(function (json, output) {
23
+ exports.renderUpdateHooks = (0, lodash_1.curry)((json, output) => {
22
24
  return renderRootUpdateHook(getRootUpdateHooks(json), output);
23
25
  });
24
26
  function getWatchHooks(json) {
25
27
  var _a;
26
- return ((_a = json.hooks.onUpdate) !== null && _a !== void 0 ? _a : []).filter(function (hook) { var _a; return (_a = hook.deps) === null || _a === void 0 ? void 0 : _a.match(/state|this/); });
28
+ return ((_a = json.hooks.onUpdate) !== null && _a !== void 0 ? _a : []).filter((hook) => { var _a; return (_a = hook.deps) === null || _a === void 0 ? void 0 : _a.match(/state|this/); });
27
29
  }
28
- var hasWatchHooks = function (json) {
30
+ const hasWatchHooks = (json) => {
29
31
  return getWatchHooks(json).length > 0;
30
32
  };
31
33
  exports.hasWatchHooks = hasWatchHooks;
32
34
  function renderWatchHook(hook) {
33
35
  var _a, _b;
34
- var deps = (_b = ((_a = hook.deps) !== null && _a !== void 0 ? _a : '')) === null || _b === void 0 ? void 0 : _b.slice(1).slice(0, -1).split(', ').filter(function (dep) { return dep.match(/state|this/); });
36
+ const deps = (_b = ((_a = hook.deps) !== null && _a !== void 0 ? _a : '')) === null || _b === void 0 ? void 0 : _b.slice(1).slice(0, -1).split(', ').filter((dep) => dep.match(/state|this/));
35
37
  return deps
36
- .map(function (dep) {
37
- return "this.$watch('".concat(dep.replace(/(state|this)\./, ''), "', (value, oldValue) => { ").concat(hook.code, " });");
38
- })
38
+ .map((dep) => `this.$watch('${dep.replace(/(state|this)\./, '')}', (value, oldValue) => { ${hook.code} });`)
39
39
  .join('\n');
40
40
  }
41
- var renderWatchHooks = function (json) {
41
+ const renderWatchHooks = (json) => {
42
42
  return (0, exports.hasWatchHooks)(json) ? getWatchHooks(json).map(renderWatchHook).join('\n') : '';
43
43
  };
44
44
  exports.renderWatchHooks = renderWatchHooks;
@@ -1,14 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAppropriateTemplateFunctionKeys = exports.HELPER_FUNCTIONS = void 0;
4
- var HELPER_FUNCTIONS = function (isTs) { return ({
5
- useObjectWrapper: "useObjectWrapper(...args".concat(isTs ? ': any[]' : '', ") {\n let obj = {}\n args.forEach((arg) => {\n obj = { ...obj, ...arg };\n });\n return obj;\n }"),
6
- useObjectDotValues: "useObjectDotValues(obj".concat(isTs ? ': any' : '', ")").concat(isTs ? ': any[]' : '', ") {\n return Object.values(obj);\n }"),
7
- useTypeOf: "useTypeOf(obj".concat(isTs ? ': any' : '', ")").concat(isTs ? ': string' : '', ") {\n return typeof obj;\n }"),
8
- useJsonStringify: "useJsonStringify(...args".concat(isTs ? ': any' : '', ")").concat(isTs ? ': string' : '', ") {\n return JSON.stringify(...args);\n }"),
9
- }); };
4
+ const HELPER_FUNCTIONS = (isTs) => ({
5
+ useObjectWrapper: `useObjectWrapper(...args${isTs ? ': any[]' : ''}) {
6
+ let obj = {}
7
+ args.forEach((arg) => {
8
+ obj = { ...obj, ...arg };
9
+ });
10
+ return obj;
11
+ }`,
12
+ useObjectDotValues: `useObjectDotValues(obj${isTs ? ': any' : ''})${isTs ? ': any[]' : ''}) {
13
+ return Object.values(obj);
14
+ }`,
15
+ useTypeOf: `useTypeOf(obj${isTs ? ': any' : ''})${isTs ? ': string' : ''}) {
16
+ return typeof obj;
17
+ }`,
18
+ useJsonStringify: `useJsonStringify(...args${isTs ? ': any' : ''})${isTs ? ': string' : ''}) {
19
+ return JSON.stringify(...args);
20
+ }`,
21
+ });
10
22
  exports.HELPER_FUNCTIONS = HELPER_FUNCTIONS;
11
- var getAppropriateTemplateFunctionKeys = function (code) {
12
- return Object.keys((0, exports.HELPER_FUNCTIONS)()).filter(function (key) { return code.includes(key); });
13
- };
23
+ const getAppropriateTemplateFunctionKeys = (code) => Object.keys((0, exports.HELPER_FUNCTIONS)()).filter((key) => code.includes(key));
14
24
  exports.getAppropriateTemplateFunctionKeys = getAppropriateTemplateFunctionKeys;