@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.
- package/dist/src/__tests__/angular.test.js +13 -2
- package/dist/src/__tests__/builder.test.js +3 -3
- package/dist/src/__tests__/data/basic-onUpdate-deps.raw.d.ts +4 -0
- package/dist/src/__tests__/data/basic-onUpdate-deps.raw.jsx +25 -0
- package/dist/src/__tests__/data/blocks/slot.raw.d.ts +5 -0
- package/dist/src/__tests__/data/blocks/slot.raw.jsx +6 -0
- package/dist/src/__tests__/html.test.js +13 -2
- package/dist/src/__tests__/liquid.test.js +103 -2
- package/dist/src/__tests__/parse-jsx.test.js +0 -22
- package/dist/src/__tests__/qwik.directive.test.js +0 -1
- package/dist/src/__tests__/qwik.test.js +23 -54
- package/dist/src/__tests__/react-native.test.js +136 -3
- package/dist/src/__tests__/react.test.js +129 -5
- package/dist/src/__tests__/shared.js +11 -0
- package/dist/src/__tests__/solid.test.js +97 -2
- package/dist/src/__tests__/stencil.test.js +98 -3
- package/dist/src/__tests__/svelte.test.js +31 -2
- package/dist/src/__tests__/vue.test.js +134 -2
- package/dist/src/__tests__/webcomponent.test.js +5 -8
- package/dist/src/generators/marko/generate.d.ts +21 -0
- package/dist/src/generators/marko/generate.js +246 -0
- package/dist/src/generators/marko/index.d.ts +1 -0
- package/dist/src/generators/marko/index.js +17 -0
- package/dist/src/generators/stencil/generate.js +0 -10
- package/dist/src/helpers/collect-styles.d.ts +29 -0
- package/dist/src/helpers/collect-styles.js +175 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/jsx-types.d.ts +1171 -0
- package/dist/src/{generators/solid/types.js → jsx-types.js} +0 -0
- package/dist/src/targets.d.ts +1 -0
- package/dist/src/targets.js +2 -0
- package/dist/test/qwik/Accordion/high.jsx +0 -0
- package/dist/test/qwik/Accordion/low.jsx +213 -0
- package/dist/test/qwik/Accordion/med.jsx +4 -0
- package/dist/test/qwik/For/high.jsx +0 -0
- package/dist/test/qwik/For/low.jsx +39 -0
- package/dist/test/qwik/For/med.jsx +4 -0
- package/dist/test/qwik/Image/high.js +9 -0
- package/dist/test/qwik/Image/low.js +0 -0
- package/dist/test/qwik/Image/med.js +151 -0
- package/dist/test/qwik/Image.slow/high.js +9 -0
- package/dist/test/qwik/Image.slow/low.js +0 -0
- package/dist/test/qwik/Image.slow/med.js +151 -0
- package/dist/test/qwik/bindings/high.cjs +0 -0
- package/dist/test/qwik/bindings/low.cjs +41 -0
- package/dist/test/qwik/bindings/med.cjs +3 -0
- package/dist/test/qwik/button/high.js +3 -0
- package/dist/test/qwik/button/low.js +17 -0
- package/dist/test/qwik/button/med.js +31 -0
- package/dist/test/qwik/component/bindings/high.jsx +0 -0
- package/dist/test/qwik/component/bindings/low.jsx +86 -0
- package/dist/test/qwik/component/bindings/med.jsx +7 -0
- package/dist/test/qwik/component/component/inputs/high.cjsx +9 -0
- package/dist/test/qwik/component/component/inputs/low.cjsx +0 -0
- package/dist/test/qwik/component/component/inputs/med.cjsx +64 -0
- package/dist/test/qwik/for-loop.bindings/high.cjs +0 -0
- package/dist/test/qwik/for-loop.bindings/low.cjs +47 -0
- package/dist/test/qwik/for-loop.bindings/med.cjs +5 -0
- package/dist/test/qwik/hello_world/stylesheet/high.jsx +0 -0
- package/dist/test/qwik/hello_world/stylesheet/low.jsx +18 -0
- package/dist/test/qwik/hello_world/stylesheet/med.jsx +4 -0
- package/dist/test/qwik/mount/high.cjs +0 -0
- package/dist/test/qwik/mount/low.cjs +44 -0
- package/dist/test/qwik/mount/med.cjs +3 -0
- package/dist/test/qwik/page-with-symbol/high.js +0 -0
- package/dist/test/qwik/page-with-symbol/low.js +25 -0
- package/dist/test/qwik/page-with-symbol/med.js +4 -0
- package/dist/test/qwik/show-hide/high.jsx +9 -0
- package/dist/test/qwik/show-hide/low.jsx +0 -0
- package/dist/test/qwik/show-hide/med.jsx +176 -0
- package/dist/test/qwik/svg/high.js +0 -0
- package/dist/test/qwik/svg/low.js +19 -0
- package/dist/test/qwik/svg/med.js +4 -0
- package/dist/test/qwik/todo/Todo.cjs/high.cjs +19 -0
- package/dist/test/qwik/todo/Todo.cjs/low.cjs +0 -0
- package/dist/test/qwik/todo/Todo.cjs/med.cjs +47 -0
- package/dist/test/qwik/todo/Todo.js/high.js +19 -0
- package/dist/test/qwik/todo/Todo.js/low.js +0 -0
- package/dist/test/qwik/todo/Todo.js/med.js +45 -0
- package/dist/test/qwik/todo/Todo.tsx/high.tsx +19 -0
- package/dist/test/qwik/todo/Todo.tsx/low.tsx +0 -0
- package/dist/test/qwik/todo/Todo.tsx/med.tsx +41 -0
- package/dist/test/qwik/todos/Todo.tsx/high.tsx +7 -0
- package/dist/test/qwik/todos/Todo.tsx/low.tsx +32 -0
- package/dist/test/qwik/todos/Todo.tsx/med.tsx +4 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -2
- package/dist/src/__tests__/hash-code.test.d.ts +0 -1
- package/dist/src/__tests__/hash-code.test.js +0 -11
- package/dist/src/__tests__/qwik/convertMethodToFunction.test.d.ts +0 -1
- package/dist/src/__tests__/qwik/convertMethodToFunction.test.js +0 -34
- package/dist/src/__tests__/qwik/src-generator.test.d.ts +0 -1
- package/dist/src/__tests__/qwik/src-generator.test.js +0 -65
- package/dist/src/__tests__/styles.test.d.ts +0 -1
- package/dist/src/__tests__/styles.test.js +0 -23
- package/dist/src/generators/solid/index.d.ts +0 -3
- package/dist/src/generators/solid/index.js +0 -330
- package/dist/src/generators/solid/state.d.ts +0 -22
- package/dist/src/generators/solid/state.js +0 -158
- package/dist/src/generators/solid/types.d.ts +0 -5
- package/dist/src/helpers/nullable.d.ts +0 -3
- package/dist/src/helpers/nullable.js +0 -7
- package/dist/src/helpers/render-imports.test.d.ts +0 -1
- package/dist/src/helpers/render-imports.test.js +0 -33
- package/dist/src/helpers/styles/collect-css.test.d.ts +0 -1
- 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
|
|
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
|
-
(
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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,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;
|
|
@@ -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
|
|
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
|
-
(
|
|
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
|
|
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
|
-
(
|
|
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
|
});
|
|
@@ -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 &&
|
|
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
|
-
|
|
382
|
-
|
|
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
|
-
|
|
436
|
-
|
|
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
|
-
|
|
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
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
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
|
|
5
|
-
|
|
6
|
-
|
|
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
|
});
|