@builder.io/mitosis 0.0.50-8 → 0.0.50
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.d.ts +1 -0
- package/dist/src/__tests__/angular.test.js +18 -0
- package/dist/src/__tests__/builder.test.d.ts +1 -0
- package/dist/src/__tests__/builder.test.js +235 -0
- package/dist/src/__tests__/context.test.d.ts +1 -0
- package/dist/src/__tests__/context.test.js +35 -0
- package/dist/src/__tests__/data/blocks/onUpdate.raw copy.d.ts +1 -0
- package/dist/src/__tests__/data/blocks/onUpdate.raw copy.jsx +10 -0
- package/dist/src/__tests__/data/blocks/self-referencing-component-with-children.raw.d.ts +1 -0
- package/dist/src/__tests__/data/blocks/self-referencing-component-with-children.raw.jsx +15 -0
- package/dist/src/__tests__/data/blocks/self-referencing-component.raw.d.ts +1 -0
- package/dist/src/__tests__/data/blocks/self-referencing-component.raw.jsx +12 -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__/data/blocks/styles.raw.d.ts +1 -0
- package/dist/src/__tests__/data/blocks/styles.raw.jsx +10 -0
- package/dist/src/__tests__/html.test.d.ts +1 -0
- package/dist/src/__tests__/html.test.js +18 -0
- package/dist/src/__tests__/liquid.test.d.ts +1 -0
- package/dist/src/__tests__/liquid.test.js +108 -0
- package/dist/src/__tests__/parse-jsx.test.d.ts +1 -0
- package/dist/src/__tests__/parse-jsx.test.js +15 -0
- package/dist/src/__tests__/qwik.directive.test.d.ts +1 -0
- package/dist/src/__tests__/qwik.directive.test.js +107 -0
- package/dist/src/__tests__/qwik.test.d.ts +1 -0
- package/dist/src/__tests__/qwik.test.js +434 -0
- package/dist/src/__tests__/react-native.test.d.ts +1 -0
- package/dist/src/__tests__/react-native.test.js +140 -0
- package/dist/src/__tests__/react.test.d.ts +1 -0
- package/dist/src/__tests__/react.test.js +141 -0
- package/dist/src/__tests__/solid.test.d.ts +1 -0
- package/dist/src/__tests__/solid.test.js +102 -0
- package/dist/src/__tests__/stencil.test.d.ts +1 -0
- package/dist/src/__tests__/stencil.test.js +102 -0
- package/dist/src/__tests__/svelte.test.d.ts +1 -0
- package/dist/src/__tests__/svelte.test.js +36 -0
- package/dist/src/__tests__/vue.test.d.ts +1 -0
- package/dist/src/__tests__/vue.test.js +139 -0
- package/dist/src/__tests__/webcomponent.test.d.ts +1 -0
- package/dist/src/__tests__/webcomponent.test.js +12 -0
- package/dist/src/constants/html_tags.d.ts +1 -0
- package/dist/src/constants/html_tags.js +119 -0
- package/dist/src/generators/angular.js +1 -1
- package/dist/src/generators/context/react copy.d.ts +8 -0
- package/dist/src/generators/context/react copy.js +28 -0
- package/dist/src/generators/context/solid.d.ts +8 -0
- package/dist/src/generators/context/solid.js +28 -0
- package/dist/src/generators/context/svelte.d.ts +8 -0
- package/dist/src/generators/context/svelte.js +28 -0
- package/dist/src/generators/helpers/context.d.ts +2 -0
- package/dist/src/generators/helpers/context.js +8 -0
- package/dist/src/generators/mitosis.js +4 -3
- package/dist/src/generators/qwik/component.js +3 -1
- package/dist/src/generators/qwik/directives.d.ts +14 -5
- package/dist/src/generators/qwik/directives.js +22 -14
- package/dist/src/generators/qwik/jsx.js +14 -2
- package/dist/src/generators/qwik/src-generator.js +47 -24
- package/dist/src/generators/react.js +2 -5
- package/dist/src/generators/solid.js +82 -8
- package/dist/src/generators/stencil/generate.js +1 -1
- package/dist/src/generators/svelte.d.ts +9 -1
- package/dist/src/generators/svelte.js +170 -77
- package/dist/src/generators/vue.js +4 -1
- package/dist/src/helpers/babel-transform copy.d.ts +8 -0
- package/dist/src/helpers/babel-transform copy.js +138 -0
- package/dist/src/helpers/babel-transform.d.ts +4 -7
- package/dist/src/helpers/babel-transform.js +13 -1
- package/dist/src/helpers/babel-transform.test.d.ts +1 -0
- package/dist/src/helpers/babel-transform.test.js +7 -0
- package/dist/src/helpers/generic-format.test.d.ts +1 -0
- package/dist/src/helpers/generic-format.test.js +8 -0
- package/dist/src/helpers/get-state-object-string.js +2 -1
- package/dist/src/helpers/parsers.d.ts +8 -0
- package/dist/src/helpers/parsers.js +66 -0
- package/dist/src/helpers/remove-surrounding-block.test.d.ts +1 -0
- package/dist/src/helpers/remove-surrounding-block.test.js +9 -0
- package/dist/src/helpers/render-imports.d.ts +2 -4
- package/dist/src/helpers/render-imports.js +32 -14
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/parsers/builder.d.ts +0 -2
- package/dist/src/parsers/builder.js +5 -33
- package/dist/src/parsers/jsx.d.ts +7 -0
- package/dist/src/parsers/jsx.js +7 -0
- package/dist/src/types/mitosis-component.d.ts +0 -1
- package/dist/test/qwik/Accordion/high.jsx +0 -0
- package/dist/test/qwik/Accordion/low.jsx +207 -0
- package/dist/test/qwik/Accordion/med.jsx +10 -0
- package/dist/test/qwik/For/high.jsx +0 -0
- package/dist/test/qwik/For/low.jsx +33 -0
- package/dist/test/qwik/For/med.jsx +10 -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 +149 -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 +149 -0
- package/dist/test/qwik/bindings/high.cjs +0 -0
- package/dist/test/qwik/bindings/low.cjs +33 -0
- package/dist/test/qwik/bindings/med.cjs +12 -0
- package/dist/test/qwik/button/high.js +3 -0
- package/dist/test/qwik/button/low.js +11 -0
- package/dist/test/qwik/button/med.js +37 -0
- package/dist/test/qwik/component/bindings/high.jsx +0 -0
- package/dist/test/qwik/component/bindings/low.jsx +43 -0
- package/dist/test/qwik/component/bindings/med.jsx +53 -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 +65 -0
- package/dist/test/qwik/hello_world/stylesheet/high.jsx +0 -0
- package/dist/test/qwik/hello_world/stylesheet/low.jsx +12 -0
- package/dist/test/qwik/hello_world/stylesheet/med.jsx +10 -0
- package/dist/test/qwik/page-with-symbol/high.js +0 -0
- package/dist/test/qwik/page-with-symbol/low.js +19 -0
- package/dist/test/qwik/page-with-symbol/med.js +10 -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 +174 -0
- package/dist/test/qwik/svg/high.js +0 -0
- package/dist/test/qwik/svg/low.js +13 -0
- package/dist/test/qwik/svg/med.js +10 -0
- package/dist/test/qwik/todo/Todo.cjs/high.cjs +23 -0
- package/dist/test/qwik/todo/Todo.cjs/low.cjs +0 -0
- package/dist/test/qwik/todo/Todo.cjs/med.cjs +48 -0
- package/dist/test/qwik/todo/Todo.js/high.js +22 -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 +22 -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 +27 -0
- package/dist/test/qwik/todos/Todo.tsx/med.tsx +9 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +6 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var angular_1 = require("../generators/angular");
|
|
4
|
+
var jsx_1 = require("../parsers/jsx");
|
|
5
|
+
var onUpdate = require('./data/blocks/onUpdate.raw');
|
|
6
|
+
var slot = require('./data/blocks/slot.raw');
|
|
7
|
+
describe('Angular', function () {
|
|
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
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
30
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
31
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
32
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
33
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
34
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
35
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
39
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
40
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
41
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
42
|
+
function step(op) {
|
|
43
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
44
|
+
while (_) try {
|
|
45
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
46
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
47
|
+
switch (op[0]) {
|
|
48
|
+
case 0: case 1: t = op; break;
|
|
49
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
50
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
51
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
52
|
+
default:
|
|
53
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
54
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
55
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
56
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
57
|
+
if (t[2]) _.ops.pop();
|
|
58
|
+
_.trys.pop(); continue;
|
|
59
|
+
}
|
|
60
|
+
op = body.call(thisArg, _);
|
|
61
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
62
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
66
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
67
|
+
};
|
|
68
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
69
|
+
var dedent_1 = __importDefault(require("dedent"));
|
|
70
|
+
var fs = __importStar(require("fs"));
|
|
71
|
+
var builder_1 = require("../generators/builder");
|
|
72
|
+
var mitosis_1 = require("../generators/mitosis");
|
|
73
|
+
var html_1 = require("../generators/html");
|
|
74
|
+
var builder_2 = require("../parsers/builder");
|
|
75
|
+
var jsx_1 = require("../parsers/jsx");
|
|
76
|
+
var compile_away_builder_components_1 = require("../plugins/compile-away-builder-components");
|
|
77
|
+
var __1 = require("..");
|
|
78
|
+
/**
|
|
79
|
+
* Load a file using nodejs resolution as a string.
|
|
80
|
+
*/
|
|
81
|
+
function fixture(path) {
|
|
82
|
+
var localpath = require.resolve(path);
|
|
83
|
+
return fs.readFileSync(localpath, { encoding: 'utf-8' });
|
|
84
|
+
}
|
|
85
|
+
var stamped = fixture('./data/blocks/stamped-io.raw');
|
|
86
|
+
var customCode = fixture('./data/blocks/custom-code.raw');
|
|
87
|
+
var embed = fixture('./data/blocks/embed.raw');
|
|
88
|
+
var image = fixture('./data/blocks/image.raw');
|
|
89
|
+
var columns = fixture('./data/blocks/columns.raw');
|
|
90
|
+
var lazyLoadSection = JSON.parse(fixture('./data/builder/lazy-load-section.json'));
|
|
91
|
+
var mitosisOptions = {
|
|
92
|
+
format: 'legacy',
|
|
93
|
+
};
|
|
94
|
+
describe('Builder', function () {
|
|
95
|
+
test('extractStateHook', function () {
|
|
96
|
+
var code = "useState({ foo: 'bar' }); alert('hi');";
|
|
97
|
+
expect((0, builder_2.extractStateHook)(code)).toEqual({
|
|
98
|
+
code: "alert('hi');",
|
|
99
|
+
state: { foo: 'bar' },
|
|
100
|
+
});
|
|
101
|
+
expect((0, builder_2.extractStateHook)(code)).toEqual({
|
|
102
|
+
code: "alert('hi');",
|
|
103
|
+
state: { foo: 'bar' },
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
test('Stamped', function () {
|
|
107
|
+
var component = (0, jsx_1.parseJsx)(stamped);
|
|
108
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
109
|
+
expect(builderJson).toMatchSnapshot();
|
|
110
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
111
|
+
var mitosis = (0, mitosis_1.componentToMitosis)()({ component: backToMitosis });
|
|
112
|
+
expect(mitosis).toMatchSnapshot();
|
|
113
|
+
});
|
|
114
|
+
test('CustomCode', function () {
|
|
115
|
+
var component = (0, jsx_1.parseJsx)(customCode);
|
|
116
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
117
|
+
expect(builderJson).toMatchSnapshot();
|
|
118
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
119
|
+
var mitosis = (0, mitosis_1.componentToMitosis)()({ component: backToMitosis });
|
|
120
|
+
expect(mitosis).toMatchSnapshot();
|
|
121
|
+
});
|
|
122
|
+
test('Embed', function () {
|
|
123
|
+
var component = (0, jsx_1.parseJsx)(embed);
|
|
124
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
125
|
+
expect(builderJson).toMatchSnapshot();
|
|
126
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
127
|
+
var mitosis = (0, mitosis_1.componentToMitosis)()({ component: backToMitosis });
|
|
128
|
+
expect(mitosis).toMatchSnapshot();
|
|
129
|
+
});
|
|
130
|
+
test('Image', function () {
|
|
131
|
+
var component = (0, jsx_1.parseJsx)(image);
|
|
132
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
133
|
+
expect(builderJson).toMatchSnapshot();
|
|
134
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
135
|
+
var mitosis = (0, mitosis_1.componentToMitosis)()({ component: backToMitosis });
|
|
136
|
+
expect(mitosis).toMatchSnapshot();
|
|
137
|
+
});
|
|
138
|
+
test('Columns', function () {
|
|
139
|
+
var component = (0, jsx_1.parseJsx)(columns);
|
|
140
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
141
|
+
expect(builderJson).toMatchSnapshot();
|
|
142
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
143
|
+
var mitosis = (0, mitosis_1.componentToMitosis)()({ component: backToMitosis });
|
|
144
|
+
expect(mitosis).toMatchSnapshot();
|
|
145
|
+
});
|
|
146
|
+
test('Section', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
147
|
+
var component, html;
|
|
148
|
+
return __generator(this, function (_a) {
|
|
149
|
+
switch (_a.label) {
|
|
150
|
+
case 0:
|
|
151
|
+
component = (0, builder_2.builderContentToMitosisComponent)(lazyLoadSection);
|
|
152
|
+
return [4 /*yield*/, (0, html_1.componentToHtml)({
|
|
153
|
+
plugins: [(0, compile_away_builder_components_1.compileAwayBuilderComponents)()],
|
|
154
|
+
})({ component: component })];
|
|
155
|
+
case 1:
|
|
156
|
+
html = _a.sent();
|
|
157
|
+
expect(html).toMatchSnapshot();
|
|
158
|
+
return [2 /*return*/];
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}); });
|
|
162
|
+
test('Regenerate Image', function () {
|
|
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
|
+
var component = (0, jsx_1.parseJsx)(code);
|
|
165
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
166
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
167
|
+
var mitosis = (0, mitosis_1.componentToMitosis)(mitosisOptions)({
|
|
168
|
+
component: backToMitosis,
|
|
169
|
+
});
|
|
170
|
+
expect(mitosis.trim()).toEqual(code.trim());
|
|
171
|
+
var react = (0, __1.componentToReact)({
|
|
172
|
+
plugins: [(0, compile_away_builder_components_1.compileAwayBuilderComponents)()],
|
|
173
|
+
})({ component: component });
|
|
174
|
+
expect(react).toMatchSnapshot();
|
|
175
|
+
});
|
|
176
|
+
test('Regenerate Text', function () {
|
|
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
|
+
var component = (0, jsx_1.parseJsx)(code);
|
|
179
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
180
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
181
|
+
var mitosis = (0, mitosis_1.componentToMitosis)(mitosisOptions)({
|
|
182
|
+
component: backToMitosis,
|
|
183
|
+
});
|
|
184
|
+
expect(mitosis.trim()).toEqual(code.trim());
|
|
185
|
+
});
|
|
186
|
+
test('Regenerate loop', function () {
|
|
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
|
+
var component = (0, jsx_1.parseJsx)(code);
|
|
189
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
190
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
191
|
+
var mitosis = (0, mitosis_1.componentToMitosis)(mitosisOptions)({
|
|
192
|
+
component: backToMitosis,
|
|
193
|
+
});
|
|
194
|
+
expect(mitosis.trim()).toEqual(code.trim());
|
|
195
|
+
});
|
|
196
|
+
test('Regenerate custom Hero', function () {
|
|
197
|
+
var code = (0, dedent_1.default)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n import { Hero } from \"@components\";\n\n export default function MyComponent(props) {\n return (\n <Hero\n title=\"Your Title Here\"\n image=\"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F52dcecf48f9c48cc8ddd8f81fec63236\"\n buttonLink=\"https://example.com\"\n buttonText=\"Click\"\n height={400}\n css={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n position: \"relative\",\n flexShrink: \"0\",\n boxSizing: \"border-box\",\n marginTop: \"200px\",\n }}\n />\n );\n }\n "], ["\n import { Hero } from \"@components\";\n\n export default function MyComponent(props) {\n return (\n <Hero\n title=\"Your Title Here\"\n image=\"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F52dcecf48f9c48cc8ddd8f81fec63236\"\n buttonLink=\"https://example.com\"\n buttonText=\"Click\"\n height={400}\n css={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n position: \"relative\",\n flexShrink: \"0\",\n boxSizing: \"border-box\",\n marginTop: \"200px\",\n }}\n />\n );\n }\n "])));
|
|
198
|
+
var component = (0, jsx_1.parseJsx)(code);
|
|
199
|
+
expect(component).toMatchSnapshot();
|
|
200
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
201
|
+
expect(builderJson).toMatchSnapshot();
|
|
202
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
203
|
+
expect(backToMitosis).toMatchSnapshot();
|
|
204
|
+
var mitosis = (0, mitosis_1.componentToMitosis)(mitosisOptions)({
|
|
205
|
+
component: backToMitosis,
|
|
206
|
+
});
|
|
207
|
+
expect(mitosis.trim()).toEqual(code.trim());
|
|
208
|
+
});
|
|
209
|
+
// TODO: fix divs and CoreFragment - need to find way to reproduce
|
|
210
|
+
test.skip('Regenerate fragments', function () {
|
|
211
|
+
var code = (0, dedent_1.default)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n export default function MyComponent(props) {\n return (\n <>\n Hello world\n\n <>\n <Fragment>Hi</Fragment>\n </>\n </>\n );\n }\n "], ["\n export default function MyComponent(props) {\n return (\n <>\n Hello world\n\n <>\n <Fragment>Hi</Fragment>\n </>\n </>\n );\n }\n "])));
|
|
212
|
+
var component = (0, jsx_1.parseJsx)(code);
|
|
213
|
+
expect(component).toMatchSnapshot();
|
|
214
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
215
|
+
expect(builderJson).toMatchSnapshot();
|
|
216
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
217
|
+
expect(backToMitosis).toMatchSnapshot();
|
|
218
|
+
var mitosis = (0, mitosis_1.componentToMitosis)(mitosisOptions)({
|
|
219
|
+
component: backToMitosis,
|
|
220
|
+
});
|
|
221
|
+
expect(mitosis.trim()).toEqual(code.trim());
|
|
222
|
+
});
|
|
223
|
+
// TODO: get passing, don't add extra divs. or at least use spans instead so don't break layout
|
|
224
|
+
test.skip('Regenerate span text', function () {
|
|
225
|
+
var code = (0, dedent_1.default)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n export default function MyComponent(props) {\n return (\n <div\n css={{\n display: \"block\",\n }}\n >\n Hi there\n <span\n css={{\n color: \"red\",\n }}\n >\n Hello world\n </span>\n </div>\n );\n }\n "], ["\n export default function MyComponent(props) {\n return (\n <div\n css={{\n display: \"block\",\n }}\n >\n Hi there\n <span\n css={{\n color: \"red\",\n }}\n >\n Hello world\n </span>\n </div>\n );\n }\n "])));
|
|
226
|
+
var component = (0, jsx_1.parseJsx)(code);
|
|
227
|
+
var builderJson = (0, builder_1.componentToBuilder)()({ component: component });
|
|
228
|
+
var backToMitosis = (0, builder_2.builderContentToMitosisComponent)(builderJson);
|
|
229
|
+
var mitosis = (0, mitosis_1.componentToMitosis)(mitosisOptions)({
|
|
230
|
+
component: backToMitosis,
|
|
231
|
+
});
|
|
232
|
+
expect(mitosis.trim()).toEqual(code.trim());
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var jsx_1 = require("../parsers/jsx");
|
|
4
|
+
var react_1 = require("../generators/context/react");
|
|
5
|
+
var context_1 = require("../parsers/context");
|
|
6
|
+
var react_2 = require("../generators/react");
|
|
7
|
+
var react_native_1 = require("../generators/react-native");
|
|
8
|
+
var simpleExample = require('./data/context/simple.context.lite');
|
|
9
|
+
var componentWithContext = require('./data/context/component-with-context.lite');
|
|
10
|
+
var renderBlock = require('./data/blocks/builder-render-block.raw');
|
|
11
|
+
describe('Context', function () {
|
|
12
|
+
test('Parse context', function () {
|
|
13
|
+
var component = (0, context_1.parseContext)(simpleExample, { name: 'SimpleExample' });
|
|
14
|
+
if (!component) {
|
|
15
|
+
throw new Error('No parseable context found for simple.context.lite.ts');
|
|
16
|
+
}
|
|
17
|
+
expect(component).toMatchSnapshot();
|
|
18
|
+
var reactContext = (0, react_1.contextToReact)()({ context: component });
|
|
19
|
+
expect(reactContext).toMatchSnapshot();
|
|
20
|
+
});
|
|
21
|
+
test('Use and set context in components', function () {
|
|
22
|
+
var component = (0, jsx_1.parseJsx)(componentWithContext);
|
|
23
|
+
expect(component).toMatchSnapshot();
|
|
24
|
+
var reactComponent = (0, react_2.componentToReact)()({ component: component });
|
|
25
|
+
expect(reactComponent).toMatchSnapshot();
|
|
26
|
+
var reactNativeComponent = (0, react_native_1.componentToReactNative)()({ component: component });
|
|
27
|
+
expect(reactNativeComponent).toMatchSnapshot();
|
|
28
|
+
});
|
|
29
|
+
test('Use and set context in complex components', function () {
|
|
30
|
+
var component = (0, jsx_1.parseJsx)(renderBlock);
|
|
31
|
+
expect(component).toMatchSnapshot();
|
|
32
|
+
var reactComponent = (0, react_2.componentToReact)()({ component: component });
|
|
33
|
+
expect(reactComponent).toMatchSnapshot();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function OnUpdate(): JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var mitosis_1 = require("@builder.io/mitosis");
|
|
4
|
+
function OnUpdate() {
|
|
5
|
+
(0, mitosis_1.onUpdate)(function () {
|
|
6
|
+
console.log('Runs on every update/rerender');
|
|
7
|
+
});
|
|
8
|
+
return <div />;
|
|
9
|
+
}
|
|
10
|
+
exports.default = OnUpdate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function MyComponent(props: any): JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var mitosis_1 = require("@builder.io/mitosis");
|
|
4
|
+
function MyComponent(props) {
|
|
5
|
+
return (<div>
|
|
6
|
+
{props.name}
|
|
7
|
+
{props.children}
|
|
8
|
+
<mitosis_1.Show when={props.name === 'Batman'}>
|
|
9
|
+
<MyComponent name={'Bruce'}>
|
|
10
|
+
<div>Wayne</div>
|
|
11
|
+
</MyComponent>
|
|
12
|
+
</mitosis_1.Show>
|
|
13
|
+
</div>);
|
|
14
|
+
}
|
|
15
|
+
exports.default = MyComponent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function MyComponent(props: any): JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var mitosis_1 = require("@builder.io/mitosis");
|
|
4
|
+
function MyComponent(props) {
|
|
5
|
+
return (<div>
|
|
6
|
+
{props.name}
|
|
7
|
+
<mitosis_1.Show when={props.name === 'Batman'}>
|
|
8
|
+
<MyComponent name={'Bruce Wayne'}/>
|
|
9
|
+
</mitosis_1.Show>
|
|
10
|
+
</div>);
|
|
11
|
+
}
|
|
12
|
+
exports.default = MyComponent;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function OnUpdate(): JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var mitosis_1 = require("@builder.io/mitosis");
|
|
4
|
+
function OnUpdate() {
|
|
5
|
+
(0, mitosis_1.onUpdate)(function () {
|
|
6
|
+
console.log('Runs on every update/rerender');
|
|
7
|
+
});
|
|
8
|
+
return <div />;
|
|
9
|
+
}
|
|
10
|
+
exports.default = OnUpdate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var html_1 = require("../generators/html");
|
|
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');
|
|
7
|
+
describe('Html', function () {
|
|
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
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var liquid_1 = require("../generators/liquid");
|
|
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');
|
|
22
|
+
describe('Liquid', function () {
|
|
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
|
+
});
|
|
108
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var jsx_1 = require("../parsers/jsx");
|
|
4
|
+
var buttonWithMetadata = require('./data/blocks/button-with-metadata.raw');
|
|
5
|
+
var image = require('./data/blocks/image.raw');
|
|
6
|
+
describe('Parse JSX', function () {
|
|
7
|
+
test('metadata', function () {
|
|
8
|
+
var json = (0, jsx_1.parseJsx)(buttonWithMetadata);
|
|
9
|
+
expect(json).toMatchSnapshot();
|
|
10
|
+
});
|
|
11
|
+
test('Image', function () {
|
|
12
|
+
var json = (0, jsx_1.parseJsx)(image);
|
|
13
|
+
expect(json).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|