@builder.io/mitosis 0.0.56-32 → 0.0.56-34

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 (108) hide show
  1. package/dist/src/__tests__/angular.test.js +13 -2
  2. package/dist/src/__tests__/builder.test.js +3 -3
  3. package/dist/src/__tests__/data/basic-onUpdate-deps.raw.d.ts +4 -0
  4. package/dist/src/__tests__/data/basic-onUpdate-deps.raw.jsx +25 -0
  5. package/dist/src/__tests__/data/blocks/slot.raw.d.ts +5 -0
  6. package/dist/src/__tests__/data/blocks/slot.raw.jsx +6 -0
  7. package/dist/src/__tests__/html.test.js +13 -2
  8. package/dist/src/__tests__/liquid.test.js +103 -2
  9. package/dist/src/__tests__/parse-jsx.test.js +0 -22
  10. package/dist/src/__tests__/qwik.directive.test.js +0 -1
  11. package/dist/src/__tests__/qwik.test.js +23 -54
  12. package/dist/src/__tests__/react-native.test.js +136 -3
  13. package/dist/src/__tests__/react.test.js +129 -5
  14. package/dist/src/__tests__/shared.js +11 -0
  15. package/dist/src/__tests__/solid.test.js +97 -2
  16. package/dist/src/__tests__/stencil.test.js +98 -3
  17. package/dist/src/__tests__/svelte.test.js +31 -2
  18. package/dist/src/__tests__/vue.test.js +134 -2
  19. package/dist/src/__tests__/webcomponent.test.js +5 -8
  20. package/dist/src/generators/marko/generate.d.ts +21 -0
  21. package/dist/src/generators/marko/generate.js +246 -0
  22. package/dist/src/generators/marko/index.d.ts +1 -0
  23. package/dist/src/generators/marko/index.js +17 -0
  24. package/dist/src/generators/stencil/generate.js +0 -10
  25. package/dist/src/helpers/collect-styles.d.ts +29 -0
  26. package/dist/src/helpers/collect-styles.js +175 -0
  27. package/dist/src/index.d.ts +1 -0
  28. package/dist/src/index.js +1 -0
  29. package/dist/src/jsx-types.d.ts +1171 -0
  30. package/dist/src/{generators/solid/types.js → jsx-types.js} +0 -0
  31. package/dist/src/targets.d.ts +1 -0
  32. package/dist/src/targets.js +2 -0
  33. package/dist/test/qwik/Accordion/high.jsx +0 -0
  34. package/dist/test/qwik/Accordion/low.jsx +213 -0
  35. package/dist/test/qwik/Accordion/med.jsx +4 -0
  36. package/dist/test/qwik/For/high.jsx +0 -0
  37. package/dist/test/qwik/For/low.jsx +39 -0
  38. package/dist/test/qwik/For/med.jsx +4 -0
  39. package/dist/test/qwik/Image/high.js +9 -0
  40. package/dist/test/qwik/Image/low.js +0 -0
  41. package/dist/test/qwik/Image/med.js +151 -0
  42. package/dist/test/qwik/Image.slow/high.js +9 -0
  43. package/dist/test/qwik/Image.slow/low.js +0 -0
  44. package/dist/test/qwik/Image.slow/med.js +151 -0
  45. package/dist/test/qwik/bindings/high.cjs +0 -0
  46. package/dist/test/qwik/bindings/low.cjs +41 -0
  47. package/dist/test/qwik/bindings/med.cjs +3 -0
  48. package/dist/test/qwik/button/high.js +3 -0
  49. package/dist/test/qwik/button/low.js +17 -0
  50. package/dist/test/qwik/button/med.js +31 -0
  51. package/dist/test/qwik/component/bindings/high.jsx +0 -0
  52. package/dist/test/qwik/component/bindings/low.jsx +86 -0
  53. package/dist/test/qwik/component/bindings/med.jsx +7 -0
  54. package/dist/test/qwik/component/component/inputs/high.cjsx +9 -0
  55. package/dist/test/qwik/component/component/inputs/low.cjsx +0 -0
  56. package/dist/test/qwik/component/component/inputs/med.cjsx +64 -0
  57. package/dist/test/qwik/for-loop.bindings/high.cjs +0 -0
  58. package/dist/test/qwik/for-loop.bindings/low.cjs +47 -0
  59. package/dist/test/qwik/for-loop.bindings/med.cjs +5 -0
  60. package/dist/test/qwik/hello_world/stylesheet/high.jsx +0 -0
  61. package/dist/test/qwik/hello_world/stylesheet/low.jsx +18 -0
  62. package/dist/test/qwik/hello_world/stylesheet/med.jsx +4 -0
  63. package/dist/test/qwik/mount/high.cjs +0 -0
  64. package/dist/test/qwik/mount/low.cjs +44 -0
  65. package/dist/test/qwik/mount/med.cjs +3 -0
  66. package/dist/test/qwik/page-with-symbol/high.js +0 -0
  67. package/dist/test/qwik/page-with-symbol/low.js +25 -0
  68. package/dist/test/qwik/page-with-symbol/med.js +4 -0
  69. package/dist/test/qwik/show-hide/high.jsx +9 -0
  70. package/dist/test/qwik/show-hide/low.jsx +0 -0
  71. package/dist/test/qwik/show-hide/med.jsx +176 -0
  72. package/dist/test/qwik/svg/high.js +0 -0
  73. package/dist/test/qwik/svg/low.js +19 -0
  74. package/dist/test/qwik/svg/med.js +4 -0
  75. package/dist/test/qwik/todo/Todo.cjs/high.cjs +19 -0
  76. package/dist/test/qwik/todo/Todo.cjs/low.cjs +0 -0
  77. package/dist/test/qwik/todo/Todo.cjs/med.cjs +47 -0
  78. package/dist/test/qwik/todo/Todo.js/high.js +19 -0
  79. package/dist/test/qwik/todo/Todo.js/low.js +0 -0
  80. package/dist/test/qwik/todo/Todo.js/med.js +45 -0
  81. package/dist/test/qwik/todo/Todo.tsx/high.tsx +19 -0
  82. package/dist/test/qwik/todo/Todo.tsx/low.tsx +0 -0
  83. package/dist/test/qwik/todo/Todo.tsx/med.tsx +41 -0
  84. package/dist/test/qwik/todos/Todo.tsx/high.tsx +7 -0
  85. package/dist/test/qwik/todos/Todo.tsx/low.tsx +32 -0
  86. package/dist/test/qwik/todos/Todo.tsx/med.tsx +4 -0
  87. package/dist/tsconfig.build.tsbuildinfo +1 -1
  88. package/dist/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +6 -2
  90. package/dist/src/__tests__/hash-code.test.d.ts +0 -1
  91. package/dist/src/__tests__/hash-code.test.js +0 -11
  92. package/dist/src/__tests__/qwik/convertMethodToFunction.test.d.ts +0 -1
  93. package/dist/src/__tests__/qwik/convertMethodToFunction.test.js +0 -34
  94. package/dist/src/__tests__/qwik/src-generator.test.d.ts +0 -1
  95. package/dist/src/__tests__/qwik/src-generator.test.js +0 -65
  96. package/dist/src/__tests__/styles.test.d.ts +0 -1
  97. package/dist/src/__tests__/styles.test.js +0 -23
  98. package/dist/src/generators/solid/index.d.ts +0 -3
  99. package/dist/src/generators/solid/index.js +0 -330
  100. package/dist/src/generators/solid/state.d.ts +0 -22
  101. package/dist/src/generators/solid/state.js +0 -158
  102. package/dist/src/generators/solid/types.d.ts +0 -5
  103. package/dist/src/helpers/nullable.d.ts +0 -3
  104. package/dist/src/helpers/nullable.js +0 -7
  105. package/dist/src/helpers/render-imports.test.d.ts +0 -1
  106. package/dist/src/helpers/render-imports.test.js +0 -33
  107. package/dist/src/helpers/styles/collect-css.test.d.ts +0 -1
  108. package/dist/src/helpers/styles/collect-css.test.js +0 -18
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var angular_1 = require("../generators/angular");
4
- var shared_1 = require("./shared");
4
+ var jsx_1 = require("../parsers/jsx");
5
+ var onUpdate = require('./data/blocks/onUpdate.raw');
6
+ var slot = require('./data/blocks/slot.raw');
5
7
  describe('Angular', function () {
6
- (0, shared_1.runTestsForTarget)('angular', (0, angular_1.componentToAngular)());
8
+ test('onUpdate', function () {
9
+ var component = (0, jsx_1.parseJsx)(onUpdate);
10
+ var output = (0, angular_1.componentToAngular)()({ component: component });
11
+ expect(output).toMatchSnapshot();
12
+ });
13
+ test('ng-content', function () {
14
+ var component = (0, jsx_1.parseJsx)(slot);
15
+ var output = (0, angular_1.componentToAngular)()({ component: component });
16
+ expect(output).toMatchSnapshot();
17
+ });
7
18
  });
@@ -160,7 +160,7 @@ describe('Builder', function () {
160
160
  });
161
161
  }); });
162
162
  test('Regenerate Image', function () {
163
- var code = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { useStore } from \"@builder.io/mitosis\";\n import { Image } from \"@components\";\n\n export default function MyComponent(props) {\n const state = useStore({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <Image\n image=\"https://cdn.builder.io/api/v1/image/foobar\"\n sizes=\"100vw\"\n backgroundSize=\"contain\"\n css={{\n marignTop: \"50px\",\n display: \"block\",\n }}\n />\n </div>\n );\n }\n "], ["\n import { useStore } from \"@builder.io/mitosis\";\n import { Image } from \"@components\";\n\n export default function MyComponent(props) {\n const state = useStore({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <Image\n image=\"https://cdn.builder.io/api/v1/image/foobar\"\n sizes=\"100vw\"\n backgroundSize=\"contain\"\n css={{\n marignTop: \"50px\",\n display: \"block\",\n }}\n />\n </div>\n );\n }\n "])));
163
+ var code = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { useState } from \"@builder.io/mitosis\";\n import { Image } from \"@components\";\n\n export default function MyComponent(props) {\n const state = useState({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <Image\n image=\"https://cdn.builder.io/api/v1/image/foobar\"\n sizes=\"100vw\"\n backgroundSize=\"contain\"\n css={{\n marignTop: \"50px\",\n display: \"block\",\n }}\n />\n </div>\n );\n }\n "], ["\n import { useState } from \"@builder.io/mitosis\";\n import { Image } from \"@components\";\n\n export default function MyComponent(props) {\n const state = useState({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <Image\n image=\"https://cdn.builder.io/api/v1/image/foobar\"\n sizes=\"100vw\"\n backgroundSize=\"contain\"\n css={{\n marignTop: \"50px\",\n display: \"block\",\n }}\n />\n </div>\n );\n }\n "])));
164
164
  var component = (0, jsx_1.parseJsx)(code);
165
165
  var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
166
166
  var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
@@ -174,7 +174,7 @@ describe('Builder', function () {
174
174
  expect(react).toMatchSnapshot();
175
175
  });
176
176
  test('Regenerate Text', function () {
177
- var code = (0, dedent_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n import { useStore } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useStore({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <h2\n css={{\n marginBottom: \"20px\",\n }}\n >\n Hello!\n </h2>\n </div>\n );\n }\n "], ["\n import { useStore } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useStore({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <h2\n css={{\n marginBottom: \"20px\",\n }}\n >\n Hello!\n </h2>\n </div>\n );\n }\n "])));
177
+ var code = (0, dedent_1.default)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n import { useState } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useState({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <h2\n css={{\n marginBottom: \"20px\",\n }}\n >\n Hello!\n </h2>\n </div>\n );\n }\n "], ["\n import { useState } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useState({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <div\n css={{\n padding: \"20px\",\n }}\n >\n <h2\n css={{\n marginBottom: \"20px\",\n }}\n >\n Hello!\n </h2>\n </div>\n );\n }\n "])));
178
178
  var component = (0, jsx_1.parseJsx)(code);
179
179
  var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
180
180
  var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
@@ -184,7 +184,7 @@ describe('Builder', function () {
184
184
  expect(mitosis.trim()).toEqual(code.trim());
185
185
  });
186
186
  test('Regenerate loop', function () {
187
- var code = (0, dedent_1.default)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n import { useStore, For } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useStore({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <For each={state.people}>\n {(person, index) => (\n <div\n key={person}\n css={{\n padding: \"10px 0\",\n }}\n >\n <span>{person}</span>\n <span>{index}</span>\n </div>\n )}\n </For>\n );\n }\n "], ["\n import { useStore, For } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useStore({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <For each={state.people}>\n {(person, index) => (\n <div\n key={person}\n css={{\n padding: \"10px 0\",\n }}\n >\n <span>{person}</span>\n <span>{index}</span>\n </div>\n )}\n </For>\n );\n }\n "])));
187
+ var code = (0, dedent_1.default)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n import { useState, For } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useState({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <For each={state.people}>\n {(person, index) => (\n <div\n key={person}\n css={{\n padding: \"10px 0\",\n }}\n >\n <span>{person}</span>\n <span>{index}</span>\n </div>\n )}\n </For>\n );\n }\n "], ["\n import { useState, For } from \"@builder.io/mitosis\";\n\n export default function MyComponent(props) {\n const state = useState({ people: [\"Steve\", \"Sewell\"] });\n\n return (\n <For each={state.people}>\n {(person, index) => (\n <div\n key={person}\n css={{\n padding: \"10px 0\",\n }}\n >\n <span>{person}</span>\n <span>{index}</span>\n </div>\n )}\n </For>\n );\n }\n "])));
188
188
  var component = (0, jsx_1.parseJsx)(code);
189
189
  var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
190
190
  var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
@@ -0,0 +1,4 @@
1
+ export interface Props {
2
+ name: string;
3
+ }
4
+ export default function MyBasicComponent(props: Props): JSX.Element;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var mitosis_1 = require("@builder.io/mitosis");
4
+ function MyBasicComponent(props) {
5
+ var state = (0, mitosis_1.useStore)({
6
+ name: 'Steve',
7
+ });
8
+ (0, mitosis_1.onUpdate)(function () {
9
+ console.log('name 1');
10
+ if (state.name === 'Steve') {
11
+ state.name = 'PatrickJS';
12
+ }
13
+ }, [state.name]);
14
+ (0, mitosis_1.onUpdate)(function () {
15
+ console.log('name 2');
16
+ if (state.name === 'PatrickJS') {
17
+ state.name = 'Hi';
18
+ }
19
+ }, [props.name]);
20
+ return (<div>
21
+ <input value={state.name} onChange={function (myEvent) { return (state.name = myEvent.target.value); }}/>
22
+ Hello! I can run in React, Vue, Solid, or Liquid!
23
+ </div>);
24
+ }
25
+ exports.default = MyBasicComponent;
@@ -0,0 +1,5 @@
1
+ declare type Props = {
2
+ [key: string]: string;
3
+ };
4
+ export default function SlotCode(props: Props): JSX.Element;
5
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function SlotCode(props) {
4
+ return <div>{props.children}</div>;
5
+ }
6
+ exports.default = SlotCode;
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var html_1 = require("../generators/html");
4
- var shared_1 = require("./shared");
4
+ var jsx_1 = require("../parsers/jsx");
5
+ var stamped = require('./data/blocks/stamped-io.raw');
6
+ var shadowDom = require('./data/blocks/shadow-dom.raw');
5
7
  describe('Html', function () {
6
- (0, shared_1.runTestsForTarget)('html', (0, html_1.componentToHtml)());
8
+ test('Stamped', function () {
9
+ var component = (0, jsx_1.parseJsx)(stamped);
10
+ var html = (0, html_1.componentToHtml)()({ component: component });
11
+ expect(html).toMatchSnapshot();
12
+ });
13
+ test('Shadow DOM', function () {
14
+ var component = (0, jsx_1.parseJsx)(shadowDom);
15
+ var html = (0, html_1.componentToHtml)()({ component: component });
16
+ expect(html).toMatchSnapshot();
17
+ });
7
18
  });
@@ -1,7 +1,108 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var liquid_1 = require("../generators/liquid");
4
- var shared_1 = require("./shared");
4
+ var jsx_1 = require("../parsers/jsx");
5
+ var basic = require('./data/basic.raw');
6
+ var submitButtonBlock = require('./data/blocks/submit-button.raw');
7
+ var inputBlock = require('./data/blocks/input.raw');
8
+ var selectBlock = require('./data/blocks/select.raw');
9
+ var formBlock = require('./data/blocks/form.raw');
10
+ var button = require('./data/blocks/button.raw');
11
+ var textarea = require('./data/blocks/textarea.raw');
12
+ var img = require('./data/blocks/img.raw');
13
+ var video = require('./data/blocks/video.raw');
14
+ var section = require('./data/blocks/section.raw');
15
+ var text = require('./data/blocks/text.raw');
16
+ var rawText = require('./data/blocks/raw-text.raw');
17
+ var customCode = require('./data/blocks/custom-code.raw');
18
+ var stamped = require('./data/blocks/stamped-io.raw');
19
+ var embed = require('./data/blocks/embed.raw');
20
+ var image = require('./data/blocks/image.raw');
21
+ var columns = require('./data/blocks/columns.raw');
5
22
  describe('Liquid', function () {
6
- (0, shared_1.runTestsForTarget)('liquid', (0, liquid_1.componentToLiquid)());
23
+ test('Basic', function () {
24
+ var component = (0, jsx_1.parseJsx)(basic);
25
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
26
+ expect(output).toMatchSnapshot();
27
+ });
28
+ test('Input block', function () {
29
+ var component = (0, jsx_1.parseJsx)(inputBlock);
30
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
31
+ expect(output).toMatchSnapshot();
32
+ });
33
+ test('Submit button block', function () {
34
+ var component = (0, jsx_1.parseJsx)(submitButtonBlock);
35
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
36
+ expect(output).toMatchSnapshot();
37
+ });
38
+ test('Select block', function () {
39
+ var component = (0, jsx_1.parseJsx)(selectBlock);
40
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
41
+ expect(output).toMatchSnapshot();
42
+ });
43
+ test('Form block', function () {
44
+ var component = (0, jsx_1.parseJsx)(formBlock);
45
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
46
+ expect(output).toMatchSnapshot();
47
+ });
48
+ test('Button', function () {
49
+ var component = (0, jsx_1.parseJsx)(button);
50
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
51
+ expect(output).toMatchSnapshot();
52
+ });
53
+ test('Textarea', function () {
54
+ var component = (0, jsx_1.parseJsx)(textarea);
55
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
56
+ expect(output).toMatchSnapshot();
57
+ });
58
+ test('Img', function () {
59
+ var component = (0, jsx_1.parseJsx)(img);
60
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
61
+ expect(output).toMatchSnapshot();
62
+ });
63
+ test('Video', function () {
64
+ var component = (0, jsx_1.parseJsx)(video);
65
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
66
+ expect(output).toMatchSnapshot();
67
+ });
68
+ test('Section', function () {
69
+ var component = (0, jsx_1.parseJsx)(section);
70
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
71
+ expect(output).toMatchSnapshot();
72
+ });
73
+ test('Text', function () {
74
+ var component = (0, jsx_1.parseJsx)(text);
75
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
76
+ expect(output).toMatchSnapshot();
77
+ });
78
+ test('RawText', function () {
79
+ var component = (0, jsx_1.parseJsx)(rawText);
80
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
81
+ expect(output).toMatchSnapshot();
82
+ });
83
+ test('Stamped.io', function () {
84
+ var component = (0, jsx_1.parseJsx)(stamped);
85
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
86
+ expect(output).toMatchSnapshot();
87
+ });
88
+ test('CustomCode', function () {
89
+ var component = (0, jsx_1.parseJsx)(customCode);
90
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
91
+ expect(output).toMatchSnapshot();
92
+ });
93
+ test('Embed', function () {
94
+ var component = (0, jsx_1.parseJsx)(customCode);
95
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
96
+ expect(output).toMatchSnapshot();
97
+ });
98
+ test('Image', function () {
99
+ var component = (0, jsx_1.parseJsx)(image);
100
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
101
+ expect(output).toMatchSnapshot();
102
+ });
103
+ test('Columns', function () {
104
+ var component = (0, jsx_1.parseJsx)(columns);
105
+ var output = (0, liquid_1.componentToLiquid)()({ component: component });
106
+ expect(output).toMatchSnapshot();
107
+ });
7
108
  });
@@ -3,11 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var jsx_1 = require("../parsers/jsx");
4
4
  var buttonWithMetadata = require('./data/blocks/button-with-metadata.raw');
5
5
  var image = require('./data/blocks/image.raw');
6
- var basicOnUpdateReturn = require('./data/basic-onUpdate-return.raw');
7
- var basicMitosis = require('./data/basic-custom-mitosis-package.raw');
8
- var basicRef = require('./data/basic-ref.raw');
9
- var basicPropsRaw = require('./data/basic-props.raw');
10
- var basicPropsDestructureRaw = require('./data/basic-props-destructure.raw');
11
6
  describe('Parse JSX', function () {
12
7
  test('metadata', function () {
13
8
  var json = (0, jsx_1.parseJsx)(buttonWithMetadata);
@@ -17,21 +12,4 @@ describe('Parse JSX', function () {
17
12
  var json = (0, jsx_1.parseJsx)(image);
18
13
  expect(json).toMatchSnapshot();
19
14
  });
20
- test('onUpdate return', function () {
21
- var json = (0, jsx_1.parseJsx)(basicOnUpdateReturn);
22
- expect(json).toMatchSnapshot();
23
- });
24
- test('useRef', function () {
25
- var json = (0, jsx_1.parseJsx)(basicRef);
26
- expect(json).toMatchSnapshot();
27
- });
28
- test('custom mitosis package', function () {
29
- var json = (0, jsx_1.parseJsx)(basicMitosis, {
30
- compileAwayPackages: ['@dummy/custom-mitosis'],
31
- });
32
- expect(json).toMatchSnapshot();
33
- });
34
- test('custom mitosis package', function () {
35
- expect((0, jsx_1.parseJsx)(basicPropsRaw)).toEqual((0, jsx_1.parseJsx)(basicPropsDestructureRaw));
36
- });
37
15
  });
@@ -103,6 +103,5 @@ function srcSet(url, additionalSizes) {
103
103
  parsedUrl.searchParams.set('width', size);
104
104
  return "".concat(parsedUrl, " ").concat(size, "w");
105
105
  })
106
- .concat([url.replace('?format=webp', '')])
107
106
  .join(', ');
108
107
  }
@@ -38,13 +38,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  var fs_extra_promise_1 = require("fs-extra-promise");
40
40
  var qwik_1 = require("../generators/qwik");
41
- var component_generator_1 = require("../generators/qwik/component-generator");
42
41
  var index_1 = require("../generators/qwik/index");
42
+ var src_generator_1 = require("../generators/qwik/src-generator");
43
43
  var builder_1 = require("../parsers/builder");
44
44
  var jsx_1 = require("../parsers/jsx");
45
45
  var compile_away_builder_components_1 = require("../plugins/compile-away-builder-components");
46
46
  var symbol_processor_1 = require("../symbols/symbol-processor");
47
- var shared_1 = require("./shared");
48
47
  var todo = require('../../../../examples/todo/src/components/todo.lite');
49
48
  var todos = require('../../../../examples/todo/src/components/todos.lite');
50
49
  var debugFiles = true;
@@ -77,7 +76,6 @@ var debugOutput = function (fileSet) { return __awaiter(void 0, void 0, void 0,
77
76
  });
78
77
  }); };
79
78
  describe('qwik', function () {
80
- (0, shared_1.runTestsForTarget)('qwik', (0, component_generator_1.componentToQwik)());
81
79
  describe('todo', function () {
82
80
  test('Todo.tsx', function () { return __awaiter(void 0, void 0, void 0, function () {
83
81
  var json, fileSet;
@@ -311,7 +309,8 @@ describe('qwik', function () {
311
309
  fileSet = (0, index_1.createFileSet)({ output: 'mjs', jsx: true });
312
310
  hierarchy.depthFirstSymbols.forEach(function (builderComponent) {
313
311
  var mitosisComponent = (0, symbol_processor_1.convertBuilderElementToMitosisComponent)(builderComponent);
314
- mitosisComponent && (0, index_1.addComponent)(fileSet, mitosisComponent, { isRoot: false });
312
+ mitosisComponent &&
313
+ (0, index_1.addComponent)(fileSet, mitosisComponent, { isRoot: false });
315
314
  });
316
315
  component = (0, builder_1.builderContentToMitosisComponent)(content, {
317
316
  includeBuilderExtras: true,
@@ -373,49 +372,13 @@ describe('qwik', function () {
373
372
  });
374
373
  }); });
375
374
  test('bindings', function () { return __awaiter(void 0, void 0, void 0, function () {
376
- var content, fileSet, component;
375
+ var content, state, fileSet, component;
377
376
  return __generator(this, function (_a) {
378
377
  switch (_a.label) {
379
378
  case 0:
380
379
  content = require('./qwik.test.bindings.json');
381
- fileSet = (0, index_1.createFileSet)({ output: 'cjs', jsx: false });
382
- component = (0, builder_1.builderContentToMitosisComponent)(content, {
383
- includeBuilderExtras: true,
384
- preserveTextBlocks: true,
385
- });
386
- (0, compile_away_builder_components_1.compileAwayBuilderComponentsFromTree)(component, compile_away_builder_components_1.components);
387
- (0, index_1.addComponent)(fileSet, component);
388
- return [4 /*yield*/, debugOutput(fileSet)];
389
- case 1:
390
- _a.sent();
391
- expect(toObj(fileSet)).toMatchSnapshot();
392
- return [2 /*return*/];
393
- }
394
- });
395
- }); });
396
- test('for-loop.bindings', function () { return __awaiter(void 0, void 0, void 0, function () {
397
- var component, fileSet;
398
- return __generator(this, function (_a) {
399
- switch (_a.label) {
400
- case 0:
401
- component = require('./qwik.test.for-loop.binding.json');
402
- fileSet = (0, index_1.createFileSet)({ output: 'cjs', jsx: false });
403
- (0, compile_away_builder_components_1.compileAwayBuilderComponentsFromTree)(component, compile_away_builder_components_1.components);
404
- (0, index_1.addComponent)(fileSet, component);
405
- return [4 /*yield*/, debugOutput(fileSet)];
406
- case 1:
407
- _a.sent();
408
- expect(toObj(fileSet)).toMatchSnapshot();
409
- return [2 /*return*/];
410
- }
411
- });
412
- }); });
413
- test('mount', function () { return __awaiter(void 0, void 0, void 0, function () {
414
- var content, fileSet, component;
415
- return __generator(this, function (_a) {
416
- switch (_a.label) {
417
- case 0:
418
- content = require('./qwik.test.mount.json');
380
+ state = {};
381
+ expect(state).toMatchSnapshot();
419
382
  fileSet = (0, index_1.createFileSet)({ output: 'cjs', jsx: false });
420
383
  component = (0, builder_1.builderContentToMitosisComponent)(content, {
421
384
  includeBuilderExtras: true,
@@ -432,24 +395,30 @@ describe('qwik', function () {
432
395
  });
433
396
  }); });
434
397
  describe('src-generator', function () {
435
- var file;
436
- beforeEach(function () {
437
- return (file = new qwik_1.File('test.js', {
398
+ test('should format code', function () {
399
+ var file = new qwik_1.File('test.js', {
438
400
  isPretty: true,
439
401
  isTypeScript: false,
440
402
  isJSX: true,
441
403
  isModule: true,
442
- isBuilder: true,
443
- }, '', ''));
444
- });
445
- test('should format code', function () {
404
+ }, '', '');
446
405
  file.src.emit('const x=1');
447
406
  expect(file.toString()).toEqual('const x = 1;\n');
448
407
  });
449
- test('should deal with empty bindings', function () {
450
- file.src.jsxBegin('Image', {}, { image: '' });
451
- file.src.jsxEnd('Image');
452
- expect(file.toString()).toEqual('<Image></Image>;\n');
408
+ });
409
+ describe('helper functions', function () {
410
+ describe('isStatement', function () {
411
+ test('is an expression', function () {
412
+ expect((0, src_generator_1.isStatement)('a.b')).toBe(false);
413
+ expect((0, src_generator_1.isStatement)('1?2:"bar"')).toBe(false);
414
+ expect((0, src_generator_1.isStatement)('"var x; return foo + \'\\"\';"')).toBe(false);
415
+ expect((0, src_generator_1.isStatement)('"foo" + `bar\nbaz`')).toBe(false);
416
+ expect((0, src_generator_1.isStatement)('(...)()')).toBe(false);
417
+ });
418
+ test('is a statement', function () {
419
+ expect((0, src_generator_1.isStatement)('var x; return x;')).toBe(true);
420
+ expect((0, src_generator_1.isStatement)('var x')).toBe(true);
421
+ });
453
422
  });
454
423
  });
455
424
  });
@@ -1,7 +1,140 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var react_native_1 = require("../generators/react-native");
4
- var shared_1 = require("./shared");
5
- describe('React Native', function () {
6
- (0, shared_1.runTestsForTarget)('reactNative', (0, react_native_1.componentToReactNative)());
4
+ var jsx_1 = require("../parsers/jsx");
5
+ var basic = require('./data/basic.raw');
6
+ var submitButtonBlock = require('./data/blocks/submit-button.raw');
7
+ var inputBlock = require('./data/blocks/input.raw');
8
+ var selectBlock = require('./data/blocks/select.raw');
9
+ var formBlock = require('./data/blocks/form.raw');
10
+ var button = require('./data/blocks/button.raw');
11
+ var textarea = require('./data/blocks/textarea.raw');
12
+ var img = require('./data/blocks/img.raw');
13
+ var video = require('./data/blocks/video.raw');
14
+ var section = require('./data/blocks/section.raw');
15
+ var text = require('./data/blocks/text.raw');
16
+ var rawText = require('./data/blocks/raw-text.raw');
17
+ var stamped = require('./data/blocks/stamped-io.raw');
18
+ var customCode = require('./data/blocks/custom-code.raw');
19
+ var embed = require('./data/blocks/embed.raw');
20
+ var image = require('./data/blocks/image.raw');
21
+ var columns = require('./data/blocks/columns.raw');
22
+ var onUpdate = require('./data/blocks/onUpdate.raw');
23
+ var onUpdateWithDeps = require('./data/blocks/onUpdateWithDeps.raw');
24
+ var multipleOnUpdate = require('./data/blocks/multiple-onUpdate.raw');
25
+ var multipleOnUpdateWithDeps = require('./data/blocks/multiple-onUpdateWithDeps.raw');
26
+ var onMount = require('./data/blocks/onMount.raw');
27
+ describe('React', function () {
28
+ test('Basic', function () {
29
+ var component = (0, jsx_1.parseJsx)(basic);
30
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
31
+ expect(output).toMatchSnapshot();
32
+ });
33
+ test('Input block', function () {
34
+ var component = (0, jsx_1.parseJsx)(inputBlock);
35
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
36
+ expect(output).toMatchSnapshot();
37
+ });
38
+ test('Submit button block', function () {
39
+ var component = (0, jsx_1.parseJsx)(submitButtonBlock);
40
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
41
+ expect(output).toMatchSnapshot();
42
+ });
43
+ test('Select block', function () {
44
+ var component = (0, jsx_1.parseJsx)(selectBlock);
45
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
46
+ expect(output).toMatchSnapshot();
47
+ });
48
+ test('Form block', function () {
49
+ var component = (0, jsx_1.parseJsx)(formBlock);
50
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
51
+ expect(output).toMatchSnapshot();
52
+ });
53
+ test('Button', function () {
54
+ var component = (0, jsx_1.parseJsx)(button);
55
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
56
+ expect(output).toMatchSnapshot();
57
+ });
58
+ test('Textarea', function () {
59
+ var component = (0, jsx_1.parseJsx)(textarea);
60
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
61
+ expect(output).toMatchSnapshot();
62
+ });
63
+ test('Img', function () {
64
+ var component = (0, jsx_1.parseJsx)(img);
65
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
66
+ expect(output).toMatchSnapshot();
67
+ });
68
+ test('Video', function () {
69
+ var component = (0, jsx_1.parseJsx)(video);
70
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
71
+ expect(output).toMatchSnapshot();
72
+ });
73
+ test('Section', function () {
74
+ var component = (0, jsx_1.parseJsx)(section);
75
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
76
+ expect(output).toMatchSnapshot();
77
+ });
78
+ test('Text', function () {
79
+ var component = (0, jsx_1.parseJsx)(text);
80
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
81
+ expect(output).toMatchSnapshot();
82
+ });
83
+ test('RawText', function () {
84
+ var component = (0, jsx_1.parseJsx)(rawText);
85
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
86
+ expect(output).toMatchSnapshot();
87
+ });
88
+ test('Stamped.io', function () {
89
+ var component = (0, jsx_1.parseJsx)(stamped);
90
+ var output = (0, react_native_1.componentToReactNative)({
91
+ stateType: 'useState',
92
+ })({ component: component });
93
+ expect(output).toMatchSnapshot();
94
+ });
95
+ test('CustomCode', function () {
96
+ var component = (0, jsx_1.parseJsx)(customCode);
97
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
98
+ expect(output).toMatchSnapshot();
99
+ });
100
+ test('Embed', function () {
101
+ var component = (0, jsx_1.parseJsx)(customCode);
102
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
103
+ expect(output).toMatchSnapshot();
104
+ });
105
+ test('Image', function () {
106
+ var component = (0, jsx_1.parseJsx)(image);
107
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
108
+ expect(output).toMatchSnapshot();
109
+ });
110
+ test('Columns', function () {
111
+ var component = (0, jsx_1.parseJsx)(columns);
112
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
113
+ expect(output).toMatchSnapshot();
114
+ });
115
+ test('onUpdate', function () {
116
+ var component = (0, jsx_1.parseJsx)(onUpdate);
117
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
118
+ expect(output).toMatchSnapshot();
119
+ });
120
+ test('onUpdateWithDeps', function () {
121
+ var component = (0, jsx_1.parseJsx)(onUpdateWithDeps);
122
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
123
+ expect(output).toMatchSnapshot();
124
+ });
125
+ test('multipleOnUpdate', function () {
126
+ var component = (0, jsx_1.parseJsx)(multipleOnUpdate);
127
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
128
+ expect(output).toMatchSnapshot();
129
+ });
130
+ test('multipleOnnUpdateWithDeps', function () {
131
+ var component = (0, jsx_1.parseJsx)(multipleOnUpdateWithDeps);
132
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
133
+ expect(output).toMatchSnapshot();
134
+ });
135
+ test('onMount & onUnMount', function () {
136
+ var component = (0, jsx_1.parseJsx)(onMount);
137
+ var output = (0, react_native_1.componentToReactNative)()({ component: component });
138
+ expect(output).toMatchSnapshot();
139
+ });
7
140
  });