@builder.io/mitosis 0.0.78 → 0.0.79

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 (143) hide show
  1. package/dist/src/generators/html.js +6 -3
  2. package/dist/src/generators/qwik/component-generator.js +51 -46
  3. package/dist/src/generators/qwik/stable-inject.d.ts +5 -0
  4. package/dist/src/generators/qwik/stable-inject.js +50 -0
  5. package/dist/src/generators/react/state.js +6 -4
  6. package/dist/src/generators/solid/state/signals.js +6 -7
  7. package/dist/src/generators/solid/state/store.js +6 -7
  8. package/dist/src/helpers/babel-transform.d.ts +0 -1
  9. package/dist/src/helpers/babel-transform.js +2 -3
  10. package/dist/src/helpers/get-state-object-string.js +1 -5
  11. package/dist/src/helpers/handle-missing-state.js +1 -1
  12. package/dist/src/helpers/plugins/process-code.js +1 -1
  13. package/dist/src/helpers/process-http-requests.js +1 -1
  14. package/dist/src/index.d.ts +1 -0
  15. package/dist/src/index.js +1 -0
  16. package/dist/src/parsers/builder/builder.js +7 -6
  17. package/dist/src/parsers/builder/helpers.js +1 -1
  18. package/dist/src/parsers/jsx/function-parser.js +2 -2
  19. package/dist/src/parsers/jsx/helpers.js +0 -4
  20. package/dist/src/parsers/jsx/hooks.js +2 -2
  21. package/dist/src/parsers/jsx/state.js +2 -2
  22. package/dist/src/parsers/svelte/css/index.d.ts +3 -0
  23. package/dist/src/parsers/svelte/css/index.js +8 -0
  24. package/dist/src/parsers/svelte/helpers/bindings.d.ts +3 -0
  25. package/dist/src/parsers/svelte/helpers/bindings.js +75 -0
  26. package/dist/src/parsers/svelte/helpers/children.d.ts +5 -0
  27. package/dist/src/parsers/svelte/helpers/children.js +23 -0
  28. package/dist/src/parsers/svelte/helpers/expressions.d.ts +3 -0
  29. package/dist/src/parsers/svelte/helpers/expressions.js +22 -0
  30. package/dist/src/parsers/svelte/helpers/hooks.d.ts +2 -0
  31. package/dist/src/parsers/svelte/helpers/hooks.js +15 -0
  32. package/dist/src/parsers/svelte/helpers/mitosis-node.d.ts +2 -0
  33. package/dist/src/parsers/svelte/helpers/mitosis-node.js +15 -0
  34. package/dist/src/parsers/svelte/helpers/post-process.d.ts +9 -0
  35. package/dist/src/parsers/svelte/helpers/post-process.js +177 -0
  36. package/dist/src/parsers/svelte/helpers/string.d.ts +3 -0
  37. package/dist/src/parsers/svelte/helpers/string.js +26 -0
  38. package/dist/src/parsers/svelte/html/actions.d.ts +3 -0
  39. package/dist/src/parsers/svelte/html/actions.js +40 -0
  40. package/dist/src/parsers/svelte/html/each.d.ts +35 -0
  41. package/dist/src/parsers/svelte/html/each.js +24 -0
  42. package/dist/src/parsers/svelte/html/element.d.ts +3 -0
  43. package/dist/src/parsers/svelte/html/element.js +222 -0
  44. package/dist/src/parsers/svelte/html/fragment.d.ts +3 -0
  45. package/dist/src/parsers/svelte/html/fragment.js +16 -0
  46. package/dist/src/parsers/svelte/html/if-else.d.ts +3 -0
  47. package/dist/src/parsers/svelte/html/if-else.js +37 -0
  48. package/dist/src/parsers/svelte/html/index.d.ts +5 -0
  49. package/dist/src/parsers/svelte/html/index.js +79 -0
  50. package/dist/src/parsers/svelte/html/mustache-tag.d.ts +3 -0
  51. package/dist/src/parsers/svelte/html/mustache-tag.js +23 -0
  52. package/dist/src/parsers/svelte/html/slot.d.ts +3 -0
  53. package/dist/src/parsers/svelte/html/slot.js +25 -0
  54. package/dist/src/parsers/svelte/html/text.d.ts +30 -0
  55. package/dist/src/parsers/svelte/html/text.js +21 -0
  56. package/dist/src/parsers/svelte/index.d.ts +2 -0
  57. package/dist/src/parsers/svelte/index.js +105 -0
  58. package/dist/src/parsers/svelte/instance/context.d.ts +5 -0
  59. package/dist/src/parsers/svelte/instance/context.js +59 -0
  60. package/dist/src/parsers/svelte/instance/expressions.d.ts +3 -0
  61. package/dist/src/parsers/svelte/instance/expressions.js +11 -0
  62. package/dist/src/parsers/svelte/instance/functions.d.ts +3 -0
  63. package/dist/src/parsers/svelte/instance/functions.js +61 -0
  64. package/dist/src/parsers/svelte/instance/hooks.d.ts +5 -0
  65. package/dist/src/parsers/svelte/instance/hooks.js +33 -0
  66. package/dist/src/parsers/svelte/instance/imports.d.ts +3 -0
  67. package/dist/src/parsers/svelte/instance/imports.js +42 -0
  68. package/dist/src/parsers/svelte/instance/index.d.ts +3 -0
  69. package/dist/src/parsers/svelte/instance/index.js +125 -0
  70. package/dist/src/parsers/svelte/instance/properties.d.ts +3 -0
  71. package/dist/src/parsers/svelte/instance/properties.js +34 -0
  72. package/dist/src/parsers/svelte/instance/reactive.d.ts +3 -0
  73. package/dist/src/parsers/svelte/instance/reactive.js +24 -0
  74. package/dist/src/parsers/svelte/instance/references.d.ts +4 -0
  75. package/dist/src/parsers/svelte/instance/references.js +68 -0
  76. package/dist/src/parsers/svelte/instance/statements.d.ts +3 -0
  77. package/dist/src/parsers/svelte/instance/statements.js +10 -0
  78. package/dist/src/parsers/svelte/module/index.d.ts +3 -0
  79. package/dist/src/parsers/svelte/module/index.js +46 -0
  80. package/dist/src/parsers/svelte/types/index.d.ts +4 -0
  81. package/dist/src/parsers/svelte/types/index.js +2 -0
  82. package/dist/src/parsers/svelte/typescript/index.d.ts +7 -0
  83. package/dist/src/parsers/svelte/typescript/index.js +130 -0
  84. package/dist/src/plugins/compile-away-builder-components.d.ts +2 -5
  85. package/dist/src/types/config.d.ts +0 -5
  86. package/dist/src/types/mitosis-component.d.ts +3 -11
  87. package/dist/src/types/mitosis-component.js +0 -11
  88. package/dist/tsconfig.build.tsbuildinfo +1 -1
  89. package/package.json +14 -1
  90. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/high.jsx +0 -0
  91. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/low.jsx +0 -240
  92. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/med.jsx +0 -4
  93. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/high.jsx +0 -0
  94. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/low.jsx +0 -54
  95. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/med.jsx +0 -4
  96. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/high.js +0 -9
  97. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/low.js +0 -0
  98. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/med.js +0 -151
  99. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/high.js +0 -9
  100. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/low.js +0 -0
  101. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/med.js +0 -151
  102. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/high.cjs +0 -0
  103. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/low.cjs +0 -45
  104. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/med.cjs +0 -3
  105. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/high.js +0 -3
  106. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/low.js +0 -25
  107. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/med.js +0 -31
  108. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/high.jsx +0 -0
  109. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/low.jsx +0 -108
  110. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/med.jsx +0 -7
  111. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/high.cjsx +0 -9
  112. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/low.cjsx +0 -0
  113. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/med.cjsx +0 -68
  114. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/high.cjs +0 -0
  115. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/low.cjs +0 -58
  116. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/med.cjs +0 -5
  117. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/high.jsx +0 -0
  118. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/low.jsx +0 -26
  119. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/med.jsx +0 -4
  120. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/high.cjs +0 -0
  121. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/low.cjs +0 -47
  122. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/med.cjs +0 -3
  123. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/high.js +0 -0
  124. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/low.js +0 -33
  125. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/med.js +0 -4
  126. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/high.jsx +0 -9
  127. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/low.jsx +0 -0
  128. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/med.jsx +0 -170
  129. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/high.js +0 -0
  130. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/low.js +0 -30
  131. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/med.js +0 -4
  132. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/high.cjs +0 -19
  133. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/low.cjs +0 -0
  134. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/med.cjs +0 -51
  135. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/high.js +0 -19
  136. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/low.js +0 -0
  137. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/med.js +0 -47
  138. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/high.tsx +0 -19
  139. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/low.tsx +0 -0
  140. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/med.tsx +0 -43
  141. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/high.tsx +0 -7
  142. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/low.tsx +0 -34
  143. package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/med.tsx +0 -4
@@ -0,0 +1,3 @@
1
+ import { BaseNode, ExpressionStatement } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseMemberExpression(json: SveltosisComponent, node: ExpressionStatement, parent?: BaseNode): void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMemberExpression = void 0;
4
+ var astring_1 = require("astring");
5
+ var hooks_1 = require("../helpers/hooks");
6
+ function parseMemberExpression(json, node, parent) {
7
+ if ((parent === null || parent === void 0 ? void 0 : parent.type) === 'Program') {
8
+ (0, hooks_1.addToOnInitHook)(json, (0, astring_1.generate)(node));
9
+ }
10
+ }
11
+ exports.parseMemberExpression = parseMemberExpression;
@@ -0,0 +1,3 @@
1
+ import type { FunctionDeclaration } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseFunctions(json: SveltosisComponent, node: FunctionDeclaration): void;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseFunctions = void 0;
4
+ var types_1 = require("@babel/types");
5
+ var astring_1 = require("astring");
6
+ var lodash_1 = require("lodash");
7
+ var compiler_1 = require("svelte/compiler");
8
+ var string_1 = require("../helpers/string");
9
+ function parseFunctions(json, node) {
10
+ var id = node.id;
11
+ var dispatchEventName;
12
+ var code = (0, astring_1.generate)(node);
13
+ (0, compiler_1.walk)(node, {
14
+ enter: function (node) {
15
+ switch (node.type) {
16
+ case 'CallExpression': {
17
+ var node_ = node;
18
+ var callee = node_.callee;
19
+ if ((callee === null || callee === void 0 ? void 0 : callee.name) === 'dispatch') {
20
+ var event_1 = (0, astring_1.generate)(node_.arguments[0]);
21
+ dispatchEventName = event_1;
22
+ }
23
+ break;
24
+ }
25
+ case 'UpdateExpression': {
26
+ if ((0, types_1.isUpdateExpression)(node) && (0, types_1.isIdentifier)(node.argument)) {
27
+ var argument = node.argument.name;
28
+ if (node.operator === '++') {
29
+ code = code.replace('++', " = ".concat(argument, " + 1"));
30
+ }
31
+ else if (node.operator === '--') {
32
+ code = code.replace('--', " = ".concat(argument, " - 1"));
33
+ }
34
+ }
35
+ break;
36
+ }
37
+ case 'AssignmentExpression': {
38
+ if ((0, types_1.isAssignmentExpression)(node) && (0, types_1.isIdentifier)(node.left)) {
39
+ var argument = node.left.name;
40
+ if (node.operator === '+=') {
41
+ code = code.replace('+=', "= ".concat(argument, " +"));
42
+ }
43
+ else if (node.operator === '-=') {
44
+ code = code.replace('-=', "= ".concat(argument, " -"));
45
+ }
46
+ }
47
+ break;
48
+ }
49
+ }
50
+ },
51
+ });
52
+ if (dispatchEventName) {
53
+ var regex = new RegExp("dispatch\\(".concat(dispatchEventName, ",?"));
54
+ code = code.replace(regex, "props.on".concat((0, lodash_1.capitalize)((0, string_1.stripQuotes)(dispatchEventName)), "("));
55
+ }
56
+ json.state[id.name] = {
57
+ code: code,
58
+ type: 'function',
59
+ };
60
+ }
61
+ exports.parseFunctions = parseFunctions;
@@ -0,0 +1,5 @@
1
+ import type { ExpressionStatement } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseOnMount(json: SveltosisComponent, node: ExpressionStatement): void;
4
+ export declare function parseOnDestroy(json: SveltosisComponent, node: ExpressionStatement): void;
5
+ export declare function parseAfterUpdate(json: SveltosisComponent, node: ExpressionStatement): void;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseAfterUpdate = exports.parseOnDestroy = exports.parseOnMount = void 0;
4
+ var astring_1 = require("astring");
5
+ function parseHookBody(node, stripCurlyBraces) {
6
+ var _a;
7
+ if (stripCurlyBraces === void 0) { stripCurlyBraces = true; }
8
+ var arguments_ = (_a = node.expression) === null || _a === void 0 ? void 0 : _a.arguments;
9
+ var code = (0, astring_1.generate)(arguments_[0].body);
10
+ if (stripCurlyBraces && (code === null || code === void 0 ? void 0 : code.trim().length) && code[0] === '{' && code[code.length - 1] === '}')
11
+ code = code.slice(1, -1);
12
+ return code;
13
+ }
14
+ function parseOnMount(json, node) {
15
+ json.hooks.onMount = {
16
+ code: parseHookBody(node),
17
+ };
18
+ }
19
+ exports.parseOnMount = parseOnMount;
20
+ function parseOnDestroy(json, node) {
21
+ json.hooks.onUnMount = {
22
+ code: parseHookBody(node),
23
+ };
24
+ }
25
+ exports.parseOnDestroy = parseOnDestroy;
26
+ function parseAfterUpdate(json, node) {
27
+ json.hooks.onUpdate = [
28
+ {
29
+ code: parseHookBody(node),
30
+ },
31
+ ];
32
+ }
33
+ exports.parseAfterUpdate = parseAfterUpdate;
@@ -0,0 +1,3 @@
1
+ import type { ImportDeclaration } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseImports(json: SveltosisComponent, node: ImportDeclaration): void;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.parseImports = void 0;
13
+ function parseImports(json, node) {
14
+ var _a;
15
+ var source = (_a = node.source) === null || _a === void 0 ? void 0 : _a.value;
16
+ if (source === 'svelte')
17
+ return; // Do not import anything from svelte
18
+ // ^ Maybe this should even be stricter and only allow relative imports and alias ones
19
+ // as you can't import any other svelte specific libraries either...Or can we?
20
+ var importSpecifiers = Object.values(node.specifiers).map(function (index) {
21
+ var _a;
22
+ return _a = {},
23
+ _a[index.local.name] = index.type === 'ImportDefaultSpecifier' ? 'default' : index.local.name,
24
+ _a;
25
+ });
26
+ var imports = {};
27
+ for (var _i = 0, importSpecifiers_1 = importSpecifiers; _i < importSpecifiers_1.length; _i++) {
28
+ var specifier = importSpecifiers_1[_i];
29
+ Object.assign(imports, specifier);
30
+ }
31
+ // only add imports which are actually used
32
+ if (Object.keys(imports).length > 0) {
33
+ json.imports = __spreadArray(__spreadArray([], json.imports, true), [
34
+ { imports: imports, path: source.replace('.svelte', '.lite') },
35
+ ], false);
36
+ // TODO: if import source already exist, combine them
37
+ // e.g. import { lowercase } from 'lodash';
38
+ // e.g. import { uppercase } from 'lodash';
39
+ // should become import { lowercase, uppercase } from 'lodash';
40
+ }
41
+ }
42
+ exports.parseImports = parseImports;
@@ -0,0 +1,3 @@
1
+ import type { Ast } from 'svelte/types/compiler/interfaces';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseInstance(ast: Ast, json: SveltosisComponent): void;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseInstance = void 0;
4
+ var compiler_1 = require("svelte/compiler");
5
+ var astring_1 = require("astring");
6
+ var hooks_1 = require("./hooks");
7
+ var functions_1 = require("./functions");
8
+ var context_1 = require("./context");
9
+ var imports_1 = require("./imports");
10
+ var properties_1 = require("./properties");
11
+ var reactive_1 = require("./reactive");
12
+ var references_1 = require("./references");
13
+ var statements_1 = require("./statements");
14
+ var expressions_1 = require("./expressions");
15
+ var handleImportDeclaration = function (json, node) {
16
+ (0, imports_1.parseImports)(json, node);
17
+ };
18
+ var handleExportNamedDeclaration = function (json, node) {
19
+ (0, properties_1.parseProperties)(json, node);
20
+ };
21
+ var handleMemberExpression = function (json, node, parent) {
22
+ (0, expressions_1.parseMemberExpression)(json, node, parent);
23
+ };
24
+ var handleExpressionStatement = function (json, node, parent) {
25
+ var _a;
26
+ if (node.expression.type === 'CallExpression') {
27
+ if (node.expression.callee.type === 'MemberExpression') {
28
+ handleMemberExpression(json, node, parent);
29
+ return;
30
+ }
31
+ var callee = node.expression.callee;
32
+ switch (callee.name) {
33
+ case 'setContext': {
34
+ (0, context_1.parseSetContext)(json, node);
35
+ break;
36
+ }
37
+ case 'onMount': {
38
+ (0, hooks_1.parseOnMount)(json, node);
39
+ break;
40
+ }
41
+ case 'onDestroy': {
42
+ (0, hooks_1.parseOnDestroy)(json, node);
43
+ break;
44
+ }
45
+ case 'onAfterUpdate': {
46
+ (0, hooks_1.parseAfterUpdate)(json, node);
47
+ break;
48
+ }
49
+ }
50
+ // No default
51
+ }
52
+ else if ((parent === null || parent === void 0 ? void 0 : parent.type) === 'Program') {
53
+ var onMountCode = ((_a = json.hooks.onMount) === null || _a === void 0 ? void 0 : _a.code) || '';
54
+ json.hooks.onMount = {
55
+ code: "".concat(onMountCode, "\n").concat((0, astring_1.generate)(node), ";\n"),
56
+ };
57
+ }
58
+ };
59
+ var handleFunctionDeclaration = function (json, node) {
60
+ (0, functions_1.parseFunctions)(json, node);
61
+ };
62
+ var handleVariableDeclaration = function (json, node) {
63
+ var _a, _b, _c, _d;
64
+ var init = (_a = node.declarations[0]) === null || _a === void 0 ? void 0 : _a.init;
65
+ if ((init === null || init === void 0 ? void 0 : init.type) === 'CallExpression' && ((_b = init === null || init === void 0 ? void 0 : init.callee) === null || _b === void 0 ? void 0 : _b.name) === 'getContext') {
66
+ (0, context_1.parseGetContext)(json, node);
67
+ }
68
+ else if ((init === null || init === void 0 ? void 0 : init.type) === 'CallExpression' &&
69
+ ((_c = init === null || init === void 0 ? void 0 : init.callee) === null || _c === void 0 ? void 0 : _c.name) === 'hasContext') {
70
+ (0, context_1.parseHasContext)(json, node);
71
+ }
72
+ else if ((init === null || init === void 0 ? void 0 : init.type) === 'CallExpression' &&
73
+ ((_d = init === null || init === void 0 ? void 0 : init.callee) === null || _d === void 0 ? void 0 : _d.name) === 'createEventDispatcher') {
74
+ // ignore
75
+ }
76
+ else {
77
+ (0, references_1.parseReferences)(json, node);
78
+ }
79
+ };
80
+ var handleLabeledStatement = function (json, node) {
81
+ if (node.label.name === '$') {
82
+ (0, reactive_1.parseReactive)(json, node);
83
+ }
84
+ };
85
+ var handleStatement = function (json, node, parent) {
86
+ if ((parent === null || parent === void 0 ? void 0 : parent.type) === 'Program') {
87
+ (0, statements_1.parseStatementAtProgramLevel)(json, node);
88
+ }
89
+ };
90
+ function parseInstance(ast, json) {
91
+ (0, compiler_1.walk)(ast.instance, {
92
+ enter: function (node, parent) {
93
+ switch (node.type) {
94
+ case 'ImportDeclaration':
95
+ handleImportDeclaration(json, node);
96
+ break;
97
+ case 'ExportNamedDeclaration':
98
+ handleExportNamedDeclaration(json, node);
99
+ break;
100
+ case 'ExpressionStatement':
101
+ handleExpressionStatement(json, node, parent);
102
+ break;
103
+ case 'FunctionDeclaration':
104
+ handleFunctionDeclaration(json, node);
105
+ break;
106
+ case 'VariableDeclaration':
107
+ parent.type === 'Program' && handleVariableDeclaration(json, node);
108
+ break;
109
+ case 'LabeledStatement':
110
+ handleLabeledStatement(json, node);
111
+ break;
112
+ case 'IfStatement':
113
+ case 'SwitchStatement':
114
+ case 'TryStatement':
115
+ case 'DoWhileStatement':
116
+ case 'ForStatement':
117
+ case 'ForInStatement':
118
+ case 'ForOfStatement':
119
+ handleStatement(json, node, parent);
120
+ break;
121
+ }
122
+ },
123
+ });
124
+ }
125
+ exports.parseInstance = parseInstance;
@@ -0,0 +1,3 @@
1
+ import type { ExportNamedDeclaration } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseProperties(json: SveltosisComponent, node: ExportNamedDeclaration): void;
@@ -0,0 +1,34 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.parseProperties = void 0;
15
+ function parseProperties(json, node) {
16
+ var _a;
17
+ var _b, _c;
18
+ var declarations = (_b = node.declaration) === null || _b === void 0 ? void 0 : _b.declarations;
19
+ if (declarations === null || declarations === void 0 ? void 0 : declarations.length) {
20
+ var declaration = declarations[0];
21
+ var property = declaration.id.name;
22
+ var value = (_c = declaration.init) === null || _c === void 0 ? void 0 : _c.value;
23
+ var propertyObject = (_a = {},
24
+ _a[property] = {
25
+ default: value,
26
+ },
27
+ _a);
28
+ json.props = __assign(__assign({}, json.props), propertyObject);
29
+ json.defaultProps = Object.fromEntries(Object.keys(json.props)
30
+ .filter(function (key) { return json.props[key].default; })
31
+ .map(function (key) { return [key, json.props[key].default]; }));
32
+ }
33
+ }
34
+ exports.parseProperties = parseProperties;
@@ -0,0 +1,3 @@
1
+ import type { LabeledStatement } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseReactive(json: SveltosisComponent, node: LabeledStatement): void;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseReactive = void 0;
4
+ var astring_1 = require("astring");
5
+ function parseReactive(json, node) {
6
+ var body = node.body;
7
+ var expression = body === null || body === void 0 ? void 0 : body.expression;
8
+ if (!expression) {
9
+ var wrap = node.body.type !== 'BlockStatement';
10
+ var name_1 = "reactive".concat(Object.values(json.state).filter(function (index) { return (index === null || index === void 0 ? void 0 : index.type) === 'getter'; }).length);
11
+ json.state[name_1] = {
12
+ code: "get ".concat(name_1, "() ").concat(wrap ? '{' : '').concat((0, astring_1.generate)(node.body)).concat(wrap ? '}' : ''),
13
+ type: 'getter',
14
+ };
15
+ }
16
+ else if (expression.left) {
17
+ var name_2 = expression.left.name;
18
+ json.state[name_2] = {
19
+ code: "get ".concat(name_2, "() {\n return ").concat((0, astring_1.generate)(expression.right), "}"),
20
+ type: 'getter',
21
+ };
22
+ }
23
+ }
24
+ exports.parseReactive = parseReactive;
@@ -0,0 +1,4 @@
1
+ import type { VariableDeclaration, Expression, Pattern } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function getParsedValue(json: SveltosisComponent, element: Expression | Pattern): {};
4
+ export declare function parseReferences(json: SveltosisComponent, node: VariableDeclaration): void;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseReferences = exports.getParsedValue = void 0;
4
+ var astring_1 = require("astring");
5
+ var lodash_1 = require("lodash");
6
+ var expressions_1 = require("../helpers/expressions");
7
+ function getParsedValue(json, element) {
8
+ switch (element.type) {
9
+ case 'Identifier': {
10
+ return element.name;
11
+ }
12
+ case 'ObjectExpression': {
13
+ return (0, expressions_1.parseObjectExpression)(json, element);
14
+ }
15
+ default: {
16
+ return element.value;
17
+ }
18
+ }
19
+ }
20
+ exports.getParsedValue = getParsedValue;
21
+ function isPropertyOrStateReference(index) {
22
+ return (0, lodash_1.isString)(index) && (index.includes('props.') || index.includes('state.'));
23
+ }
24
+ function parseReferences(json, node) {
25
+ var _a, _b;
26
+ var declaration = node.declarations[0];
27
+ var code;
28
+ var type = 'property';
29
+ switch ((_a = declaration === null || declaration === void 0 ? void 0 : declaration.init) === null || _a === void 0 ? void 0 : _a.type) {
30
+ case 'ArrayExpression': {
31
+ code = declaration.init.elements.map(function (element) {
32
+ return getParsedValue(json, element);
33
+ });
34
+ if ((0, lodash_1.some)(code, function (c) { return isPropertyOrStateReference(c); })) {
35
+ var name_1 = declaration.id.name;
36
+ json.state[name_1] = {
37
+ code: "get ".concat(name_1, "() { return [").concat(code.map(function (c) {
38
+ if (isPropertyOrStateReference(c)) {
39
+ return c;
40
+ }
41
+ return JSON.stringify(c);
42
+ }), "]}"),
43
+ type: 'getter',
44
+ };
45
+ return;
46
+ }
47
+ break;
48
+ }
49
+ case 'ObjectExpression': {
50
+ code = (0, expressions_1.parseObjectExpression)(json, declaration.init);
51
+ break;
52
+ }
53
+ case 'FunctionExpression': {
54
+ declaration.init.id = declaration.id;
55
+ code = (0, astring_1.generate)(declaration.init);
56
+ type = 'function';
57
+ break;
58
+ }
59
+ default: {
60
+ code = (_b = declaration === null || declaration === void 0 ? void 0 : declaration.init) === null || _b === void 0 ? void 0 : _b.value;
61
+ }
62
+ }
63
+ json.state[declaration.id.name] = {
64
+ code: JSON.stringify(code),
65
+ type: type,
66
+ };
67
+ }
68
+ exports.parseReferences = parseReferences;
@@ -0,0 +1,3 @@
1
+ import type { Statement } from 'estree';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseStatementAtProgramLevel(json: SveltosisComponent, node: Statement): void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStatementAtProgramLevel = void 0;
4
+ var astring_1 = require("astring");
5
+ var hooks_1 = require("../helpers/hooks");
6
+ function parseStatementAtProgramLevel(json, node) {
7
+ var statement = (0, astring_1.generate)(node);
8
+ (0, hooks_1.addToOnInitHook)(json, statement);
9
+ }
10
+ exports.parseStatementAtProgramLevel = parseStatementAtProgramLevel;
@@ -0,0 +1,3 @@
1
+ import type { Ast } from 'svelte/types/compiler/interfaces';
2
+ import type { SveltosisComponent } from '../types';
3
+ export declare function parseModule(ast: Ast, json: SveltosisComponent): void;
@@ -0,0 +1,46 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.parseModule = void 0;
15
+ var compiler_1 = require("svelte/compiler");
16
+ var astring_1 = require("astring");
17
+ function handleExportNamedDeclaration(json, node) {
18
+ var _a;
19
+ var _b, _c, _d;
20
+ var declarations = (_b = node.declaration) === null || _b === void 0 ? void 0 : _b.declarations;
21
+ if (declarations === null || declarations === void 0 ? void 0 : declarations.length) {
22
+ var declaration = declarations[0];
23
+ var property = declaration.id.name;
24
+ var isFunction = ((_c = declaration.init) === null || _c === void 0 ? void 0 : _c.type) === 'FunctionExpression' ||
25
+ ((_d = declaration.init) === null || _d === void 0 ? void 0 : _d.type) === 'ArrowFunctionExpression';
26
+ var exportObject = (_a = {},
27
+ _a[property] = {
28
+ code: (0, astring_1.generate)(node),
29
+ isFunction: isFunction,
30
+ },
31
+ _a);
32
+ json.exports = __assign(__assign({}, json.exports), exportObject);
33
+ }
34
+ }
35
+ function parseModule(ast, json) {
36
+ (0, compiler_1.walk)(ast.module, {
37
+ enter: function (node) {
38
+ switch (node.type) {
39
+ case 'ExportNamedDeclaration':
40
+ handleExportNamedDeclaration(json, node);
41
+ break;
42
+ }
43
+ },
44
+ });
45
+ }
46
+ exports.parseModule = parseModule;
@@ -0,0 +1,4 @@
1
+ import { MitosisComponent } from '../../../types/mitosis-component';
2
+ export declare type SveltosisComponent = MitosisComponent & {
3
+ props: any;
4
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import type { SveltosisComponent } from '../types';
2
+ export declare function isTypeScriptComponent(string_: string): boolean;
3
+ /** Create a tag matching regexp. */
4
+ export declare function createTagRegex(tagName: string, flags?: string): RegExp;
5
+ /** Transform an attribute string into a key-value object */
6
+ export declare function parseAttributes(attributesString: string): Record<string, any>;
7
+ export declare function collectTypes(string_: string, json: SveltosisComponent): void;