@builder.io/mitosis 0.0.78 → 0.0.80
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/generators/html.js +6 -3
- package/dist/src/generators/qwik/component-generator.js +51 -46
- package/dist/src/generators/qwik/stable-inject.d.ts +5 -0
- package/dist/src/generators/qwik/stable-inject.js +50 -0
- package/dist/src/generators/react/generator.js +7 -4
- package/dist/src/generators/react/state.js +6 -4
- package/dist/src/generators/solid/state/signals.js +6 -7
- package/dist/src/generators/solid/state/store.js +6 -7
- package/dist/src/helpers/babel-transform.d.ts +0 -1
- package/dist/src/helpers/babel-transform.js +2 -3
- package/dist/src/helpers/get-state-object-string.js +1 -5
- package/dist/src/helpers/handle-missing-state.js +1 -1
- package/dist/src/helpers/plugins/process-code.js +1 -1
- package/dist/src/helpers/process-http-requests.js +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/parsers/builder/builder.js +7 -6
- package/dist/src/parsers/builder/helpers.js +1 -1
- package/dist/src/parsers/jsx/function-parser.js +2 -2
- package/dist/src/parsers/jsx/helpers.js +0 -4
- package/dist/src/parsers/jsx/hooks.js +2 -2
- package/dist/src/parsers/jsx/state.js +2 -2
- package/dist/src/parsers/svelte/css/index.d.ts +3 -0
- package/dist/src/parsers/svelte/css/index.js +8 -0
- package/dist/src/parsers/svelte/helpers/bindings.d.ts +3 -0
- package/dist/src/parsers/svelte/helpers/bindings.js +75 -0
- package/dist/src/parsers/svelte/helpers/children.d.ts +5 -0
- package/dist/src/parsers/svelte/helpers/children.js +23 -0
- package/dist/src/parsers/svelte/helpers/expressions.d.ts +3 -0
- package/dist/src/parsers/svelte/helpers/expressions.js +22 -0
- package/dist/src/parsers/svelte/helpers/hooks.d.ts +2 -0
- package/dist/src/parsers/svelte/helpers/hooks.js +15 -0
- package/dist/src/parsers/svelte/helpers/mitosis-node.d.ts +2 -0
- package/dist/src/parsers/svelte/helpers/mitosis-node.js +15 -0
- package/dist/src/parsers/svelte/helpers/post-process.d.ts +9 -0
- package/dist/src/parsers/svelte/helpers/post-process.js +177 -0
- package/dist/src/parsers/svelte/helpers/string.d.ts +3 -0
- package/dist/src/parsers/svelte/helpers/string.js +26 -0
- package/dist/src/parsers/svelte/html/actions.d.ts +3 -0
- package/dist/src/parsers/svelte/html/actions.js +40 -0
- package/dist/src/parsers/svelte/html/each.d.ts +35 -0
- package/dist/src/parsers/svelte/html/each.js +24 -0
- package/dist/src/parsers/svelte/html/element.d.ts +3 -0
- package/dist/src/parsers/svelte/html/element.js +222 -0
- package/dist/src/parsers/svelte/html/fragment.d.ts +3 -0
- package/dist/src/parsers/svelte/html/fragment.js +16 -0
- package/dist/src/parsers/svelte/html/if-else.d.ts +3 -0
- package/dist/src/parsers/svelte/html/if-else.js +37 -0
- package/dist/src/parsers/svelte/html/index.d.ts +5 -0
- package/dist/src/parsers/svelte/html/index.js +79 -0
- package/dist/src/parsers/svelte/html/mustache-tag.d.ts +3 -0
- package/dist/src/parsers/svelte/html/mustache-tag.js +23 -0
- package/dist/src/parsers/svelte/html/slot.d.ts +3 -0
- package/dist/src/parsers/svelte/html/slot.js +25 -0
- package/dist/src/parsers/svelte/html/text.d.ts +30 -0
- package/dist/src/parsers/svelte/html/text.js +21 -0
- package/dist/src/parsers/svelte/index.d.ts +2 -0
- package/dist/src/parsers/svelte/index.js +105 -0
- package/dist/src/parsers/svelte/instance/context.d.ts +5 -0
- package/dist/src/parsers/svelte/instance/context.js +59 -0
- package/dist/src/parsers/svelte/instance/expressions.d.ts +3 -0
- package/dist/src/parsers/svelte/instance/expressions.js +11 -0
- package/dist/src/parsers/svelte/instance/functions.d.ts +3 -0
- package/dist/src/parsers/svelte/instance/functions.js +61 -0
- package/dist/src/parsers/svelte/instance/hooks.d.ts +5 -0
- package/dist/src/parsers/svelte/instance/hooks.js +33 -0
- package/dist/src/parsers/svelte/instance/imports.d.ts +3 -0
- package/dist/src/parsers/svelte/instance/imports.js +42 -0
- package/dist/src/parsers/svelte/instance/index.d.ts +3 -0
- package/dist/src/parsers/svelte/instance/index.js +125 -0
- package/dist/src/parsers/svelte/instance/properties.d.ts +3 -0
- package/dist/src/parsers/svelte/instance/properties.js +34 -0
- package/dist/src/parsers/svelte/instance/reactive.d.ts +3 -0
- package/dist/src/parsers/svelte/instance/reactive.js +24 -0
- package/dist/src/parsers/svelte/instance/references.d.ts +4 -0
- package/dist/src/parsers/svelte/instance/references.js +68 -0
- package/dist/src/parsers/svelte/instance/statements.d.ts +3 -0
- package/dist/src/parsers/svelte/instance/statements.js +10 -0
- package/dist/src/parsers/svelte/module/index.d.ts +3 -0
- package/dist/src/parsers/svelte/module/index.js +46 -0
- package/dist/src/parsers/svelte/types/index.d.ts +4 -0
- package/dist/src/parsers/svelte/types/index.js +2 -0
- package/dist/src/parsers/svelte/typescript/index.d.ts +7 -0
- package/dist/src/parsers/svelte/typescript/index.js +130 -0
- package/dist/src/plugins/compile-away-builder-components.d.ts +2 -5
- package/dist/src/types/config.d.ts +0 -5
- package/dist/src/types/mitosis-component.d.ts +3 -11
- package/dist/src/types/mitosis-component.js +0 -11
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +14 -1
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/high.jsx +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/low.jsx +0 -240
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mAccordion/med.jsx +0 -4
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/high.jsx +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/low.jsx +0 -54
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mFor/med.jsx +0 -4
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/high.js +0 -9
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/low.js +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage/med.js +0 -151
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/high.js +0 -9
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/low.js +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mImage.slow/med.js +0 -151
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/high.cjs +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/low.cjs +0 -45
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbindings/med.cjs +0 -3
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/high.js +0 -3
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/low.js +0 -25
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mbutton/med.js +0 -31
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/high.jsx +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/low.jsx +0 -108
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mbindings/med.jsx +0 -7
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/high.cjsx +0 -9
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/low.cjsx +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mcomponent/033[2m/>//033[22mcomponent/inputs/med.cjsx +0 -68
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/high.cjs +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/low.cjs +0 -58
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mfor-loop.bindings/med.cjs +0 -5
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/high.jsx +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/low.jsx +0 -26
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mhello_world/033[2m/>//033[22mstylesheet/med.jsx +0 -4
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/high.cjs +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/low.cjs +0 -47
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mmount/med.cjs +0 -3
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/high.js +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/low.js +0 -33
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mpage-with-symbol/med.js +0 -4
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/high.jsx +0 -9
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/low.jsx +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mshow-hide/med.jsx +0 -170
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/high.js +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/low.js +0 -30
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22msvg/med.js +0 -4
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/high.cjs +0 -19
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/low.cjs +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.cjs/med.cjs +0 -51
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/high.js +0 -19
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/low.js +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.js/med.js +0 -47
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/high.tsx +0 -19
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/low.tsx +0 -0
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodo/033[2m/>//033[22mTodo.tsx/med.tsx +0 -43
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/high.tsx +0 -7
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/low.tsx +0 -34
- package/dist/test/src/__tests__/qwik.test.ts/033[2m/>//033[22mqwik/033[2m/>//033[22mtodos/033[2m/>//033[22mTodo.tsx/med.tsx +0 -4
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processBindings = void 0;
|
|
4
|
+
function replaceGroupWithChecked(node, isArray) {
|
|
5
|
+
var _a, _b, _c;
|
|
6
|
+
if (isArray === void 0) { isArray = false; }
|
|
7
|
+
if ((_b = (_a = node.bindings.group) === null || _a === void 0 ? void 0 : _a.code) === null || _b === void 0 ? void 0 : _b.length) {
|
|
8
|
+
var bindingValue = (_c = node.bindings.value) === null || _c === void 0 ? void 0 : _c.code;
|
|
9
|
+
var propertyValue = node.properties.value;
|
|
10
|
+
var groupBinding = node.bindings.group.code;
|
|
11
|
+
var code = '';
|
|
12
|
+
if (isArray) {
|
|
13
|
+
code = bindingValue
|
|
14
|
+
? "".concat(groupBinding, ".includes(").concat(bindingValue, ")")
|
|
15
|
+
: "".concat(groupBinding, ".includes('").concat(propertyValue, "')");
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
code = bindingValue
|
|
19
|
+
? "".concat(groupBinding, " === ").concat(bindingValue)
|
|
20
|
+
: "".concat(groupBinding, " === '").concat(propertyValue, "'");
|
|
21
|
+
}
|
|
22
|
+
node.bindings['checked'] = {
|
|
23
|
+
code: code,
|
|
24
|
+
};
|
|
25
|
+
delete node.bindings.group;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/* post-processes bindings
|
|
29
|
+
bind:group https://svelte.dev/docs#template-syntax-element-directives-bind-group
|
|
30
|
+
bind:property https://svelte.dev/docs#template-syntax-component-directives-bind-this
|
|
31
|
+
bind:this https://svelte.dev/docs#template-syntax-component-directives-bind-this
|
|
32
|
+
|
|
33
|
+
- replaces group binding with checked for checkboxes and radios (supported inputs for bind:group)
|
|
34
|
+
- adds onChange for bind:group and bind:property (event.target.value OR event.target.checked)
|
|
35
|
+
*/
|
|
36
|
+
function processBindings(json, node) {
|
|
37
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
38
|
+
var name;
|
|
39
|
+
var target = 'event.target.value';
|
|
40
|
+
var binding = '';
|
|
41
|
+
var isArray = false;
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(node.bindings, 'group')) {
|
|
43
|
+
name = 'group';
|
|
44
|
+
binding = (_b = (_a = node.bindings.group) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : '';
|
|
45
|
+
if (binding.startsWith('state.')) {
|
|
46
|
+
var stateObject = json.state[binding.replace(/^state\./, '')];
|
|
47
|
+
isArray = Array.isArray(stateObject === null || stateObject === void 0 ? void 0 : stateObject.code);
|
|
48
|
+
}
|
|
49
|
+
replaceGroupWithChecked(node, isArray);
|
|
50
|
+
if (node.properties.type === 'checkbox' && !node.properties.value) {
|
|
51
|
+
target = 'event.target.checked';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (Object.prototype.hasOwnProperty.call(node.bindings, 'this')) {
|
|
55
|
+
name = 'ref';
|
|
56
|
+
binding = (_d = (_c = node.bindings.this) === null || _c === void 0 ? void 0 : _c.code) !== null && _d !== void 0 ? _d : '';
|
|
57
|
+
}
|
|
58
|
+
else if (Object.prototype.hasOwnProperty.call(node.bindings, 'onChange') &&
|
|
59
|
+
node.properties.type === 'checkbox') {
|
|
60
|
+
target = 'event.target.checked';
|
|
61
|
+
binding = (_f = (_e = node.bindings.onChange) === null || _e === void 0 ? void 0 : _e.code.split('=')[0]) !== null && _f !== void 0 ? _f : '';
|
|
62
|
+
}
|
|
63
|
+
var onChangeCode = "".concat(binding, " = ").concat(target);
|
|
64
|
+
// If the binding is an array, we should push / splice rather than assigning
|
|
65
|
+
if (isArray) {
|
|
66
|
+
onChangeCode = "event.target.checked ? ".concat(binding, ".push(").concat(target, ") : ").concat(binding, ".splice(").concat(binding, ".indexOf(").concat(node.properties.value ? "'".concat(node.properties.value, "'") : (_g = node.bindings.value) === null || _g === void 0 ? void 0 : _g.code, "), 1)");
|
|
67
|
+
}
|
|
68
|
+
if (name !== 'ref' && binding) {
|
|
69
|
+
node.bindings['onChange'] = {
|
|
70
|
+
code: onChangeCode,
|
|
71
|
+
arguments: ['event'],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.processBindings = processBindings;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TemplateNode } from 'svelte/types/compiler/interfaces';
|
|
2
|
+
import type { MitosisNode } from '../../../types/mitosis-node';
|
|
3
|
+
import type { SveltosisComponent } from '../types';
|
|
4
|
+
export declare function filterChildren(children: TemplateNode[]): TemplateNode[];
|
|
5
|
+
export declare function parseChildren(json: SveltosisComponent, node: TemplateNode): MitosisNode[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseChildren = exports.filterChildren = void 0;
|
|
4
|
+
var html_1 = require("../html");
|
|
5
|
+
function filterChildren(children) {
|
|
6
|
+
var _a;
|
|
7
|
+
return ((_a = children === null || children === void 0 ? void 0 : children.filter(function (n) { var _a; return n.type !== 'Comment' && (n.type !== 'Text' || ((_a = n.data) === null || _a === void 0 ? void 0 : _a.trim().length)); })) !== null && _a !== void 0 ? _a : []);
|
|
8
|
+
}
|
|
9
|
+
exports.filterChildren = filterChildren;
|
|
10
|
+
function parseChildren(json, node) {
|
|
11
|
+
var children = [];
|
|
12
|
+
if (node.children) {
|
|
13
|
+
for (var _i = 0, _a = filterChildren(node.children); _i < _a.length; _i++) {
|
|
14
|
+
var child = _a[_i];
|
|
15
|
+
var mitosisNode = (0, html_1.parseHtmlNode)(json, child);
|
|
16
|
+
if (mitosisNode) {
|
|
17
|
+
children.push(mitosisNode);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return children;
|
|
22
|
+
}
|
|
23
|
+
exports.parseChildren = parseChildren;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseObjectExpression = void 0;
|
|
4
|
+
var astring_1 = require("astring");
|
|
5
|
+
var references_1 = require("../instance/references");
|
|
6
|
+
function parseObjectExpression(json, node) {
|
|
7
|
+
var _a;
|
|
8
|
+
var properties = node.properties.map(function (n) {
|
|
9
|
+
var node_ = n;
|
|
10
|
+
return {
|
|
11
|
+
key: (0, astring_1.generate)(node_.key),
|
|
12
|
+
value: (0, references_1.getParsedValue)(json, node_.value),
|
|
13
|
+
};
|
|
14
|
+
});
|
|
15
|
+
var c = {};
|
|
16
|
+
for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {
|
|
17
|
+
var item = properties_1[_i];
|
|
18
|
+
Object.assign(c, (_a = {}, _a[item.key] = item.value, _a));
|
|
19
|
+
}
|
|
20
|
+
return c;
|
|
21
|
+
}
|
|
22
|
+
exports.parseObjectExpression = parseObjectExpression;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addToOnInitHook = void 0;
|
|
4
|
+
function addToOnInitHook(json, code) {
|
|
5
|
+
var _a;
|
|
6
|
+
if ((_a = json.hooks.onInit) === null || _a === void 0 ? void 0 : _a.code.length) {
|
|
7
|
+
json.hooks.onInit.code += "\n ".concat(code);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
json.hooks.onInit = {
|
|
11
|
+
code: code,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.addToOnInitHook = addToOnInitHook;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMitosisNode = void 0;
|
|
4
|
+
function createMitosisNode() {
|
|
5
|
+
return {
|
|
6
|
+
'@type': '@builder.io/mitosis/node',
|
|
7
|
+
name: '',
|
|
8
|
+
meta: {},
|
|
9
|
+
scope: {},
|
|
10
|
+
children: [],
|
|
11
|
+
bindings: {},
|
|
12
|
+
properties: {},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
exports.createMitosisNode = createMitosisNode;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SveltosisComponent } from '../types';
|
|
2
|
+
export declare function preventNameCollissions(json: SveltosisComponent, input: string, arguments_: string[], prepend?: string, append?: string): {
|
|
3
|
+
code: string;
|
|
4
|
+
arguments: string[];
|
|
5
|
+
} | {
|
|
6
|
+
code: string;
|
|
7
|
+
arguments?: undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare function postProcess(json: SveltosisComponent): void;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
+
if (ar || !(i in from)) {
|
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
+
ar[i] = from[i];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.postProcess = exports.preventNameCollissions = void 0;
|
|
24
|
+
var bindings_1 = require("./bindings");
|
|
25
|
+
function preventNameCollissions(json, input, arguments_, prepend, append) {
|
|
26
|
+
if (prepend === void 0) { prepend = ''; }
|
|
27
|
+
if (append === void 0) { append = '_'; }
|
|
28
|
+
var output = input;
|
|
29
|
+
var argumentsOutput = arguments_;
|
|
30
|
+
var keys = __spreadArray(__spreadArray(__spreadArray([], Object.keys(json.props), true), Object.keys(json.state), true), Object.keys(json.refs), true);
|
|
31
|
+
var _loop_1 = function (key) {
|
|
32
|
+
var regex = function () { return new RegExp("(?<!=(?:\\s))".concat(key, "\\b"), 'g'); };
|
|
33
|
+
var isInArguments = false;
|
|
34
|
+
argumentsOutput.forEach(function (argument, index) {
|
|
35
|
+
if (regex().test(argument)) {
|
|
36
|
+
isInArguments = true;
|
|
37
|
+
argumentsOutput.splice(index, 1, argument.replace(regex(), "".concat(prepend).concat(key).concat(append)));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
var isInOutput = regex().test(output);
|
|
41
|
+
if (isInArguments && isInOutput) {
|
|
42
|
+
output = output.replace(regex(), "".concat(prepend).concat(key).concat(append));
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
46
|
+
var key = keys_1[_i];
|
|
47
|
+
_loop_1(key);
|
|
48
|
+
}
|
|
49
|
+
return (argumentsOutput === null || argumentsOutput === void 0 ? void 0 : argumentsOutput.length)
|
|
50
|
+
? {
|
|
51
|
+
code: output,
|
|
52
|
+
arguments: argumentsOutput,
|
|
53
|
+
}
|
|
54
|
+
: { code: output };
|
|
55
|
+
}
|
|
56
|
+
exports.preventNameCollissions = preventNameCollissions;
|
|
57
|
+
function prependProperties(json, input) {
|
|
58
|
+
var output = input;
|
|
59
|
+
var propertyKeys = Object.keys(json.props);
|
|
60
|
+
for (var _i = 0, propertyKeys_1 = propertyKeys; _i < propertyKeys_1.length; _i++) {
|
|
61
|
+
var property = propertyKeys_1[_i];
|
|
62
|
+
var regex = new RegExp("(?<!(\\.|'|\"|`))\\b(props\\.)?".concat(property, "\\b"), 'g');
|
|
63
|
+
if (regex.test(output)) {
|
|
64
|
+
output = output.replace(regex, "props.".concat(property));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return output;
|
|
68
|
+
}
|
|
69
|
+
function prependState(json, input) {
|
|
70
|
+
var output = input;
|
|
71
|
+
var stateKeys = Object.keys(json.state);
|
|
72
|
+
for (var _i = 0, stateKeys_1 = stateKeys; _i < stateKeys_1.length; _i++) {
|
|
73
|
+
var state = stateKeys_1[_i];
|
|
74
|
+
var regex = new RegExp("(?<!(\\.|'|\"|`|function ))\\b(state\\.)?".concat(state, "\\b(?!(\\s+)?\\()"), 'g');
|
|
75
|
+
if (regex.test(output)) {
|
|
76
|
+
output = output.replace(regex, "state.".concat(state));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return output;
|
|
80
|
+
}
|
|
81
|
+
function addPropertiesAndState(json, input) {
|
|
82
|
+
var output = input;
|
|
83
|
+
output = prependProperties(json, output);
|
|
84
|
+
output = prependState(json, output);
|
|
85
|
+
return output;
|
|
86
|
+
}
|
|
87
|
+
function addPropertiesAndStateToNode(json, node) {
|
|
88
|
+
var _a, _b, _c;
|
|
89
|
+
for (var _i = 0, _d = Object.keys(node.bindings); _i < _d.length; _i++) {
|
|
90
|
+
var key = _d[_i];
|
|
91
|
+
if (Object.prototype.hasOwnProperty.call(node.bindings, key)) {
|
|
92
|
+
node.bindings[key] = {
|
|
93
|
+
code: addPropertiesAndState(json, (_b = (_a = node.bindings[key]) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : '').trim(),
|
|
94
|
+
type: (_c = node.bindings[key]) === null || _c === void 0 ? void 0 : _c.type,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function postProcessState(json) {
|
|
100
|
+
for (var _i = 0, _a = Object.keys(json.state); _i < _a.length; _i++) {
|
|
101
|
+
var key = _a[_i];
|
|
102
|
+
var item = json.state[key];
|
|
103
|
+
if ((item === null || item === void 0 ? void 0 : item.type) !== 'property') {
|
|
104
|
+
var output = preventNameCollissions(json, item.code, (item === null || item === void 0 ? void 0 : item.arguments) || []);
|
|
105
|
+
output.code = addPropertiesAndState(json, output.code);
|
|
106
|
+
json.state[key] = __assign(__assign({}, item), output);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function postProcessChildren(json, children) {
|
|
111
|
+
var _a;
|
|
112
|
+
for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
|
|
113
|
+
var node = children_1[_i];
|
|
114
|
+
addPropertiesAndStateToNode(json, node);
|
|
115
|
+
(0, bindings_1.processBindings)(json, node);
|
|
116
|
+
var children_2 = [];
|
|
117
|
+
if (((_a = node.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
118
|
+
children_2 = node.children;
|
|
119
|
+
}
|
|
120
|
+
var metaValues = (Object.values(node.meta) || []);
|
|
121
|
+
if (metaValues.length > 0) {
|
|
122
|
+
var metaChildren = metaValues.filter(function (item) {
|
|
123
|
+
return (item === null || item === void 0 ? void 0 : item['@type']) === '@builder.io/mitosis/node';
|
|
124
|
+
});
|
|
125
|
+
children_2 = __spreadArray(__spreadArray([], children_2, true), metaChildren, true);
|
|
126
|
+
}
|
|
127
|
+
postProcessChildren(json, children_2);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function addPropertiesAndStateToHook(json, hook) {
|
|
131
|
+
return {
|
|
132
|
+
code: addPropertiesAndState(json, hook.code),
|
|
133
|
+
deps: addPropertiesAndState(json, hook.deps || ''),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function postProcessHooks(json) {
|
|
137
|
+
var hookKeys = Object.keys(json.hooks);
|
|
138
|
+
var _loop_2 = function (key) {
|
|
139
|
+
var hook = json.hooks[key];
|
|
140
|
+
if (!hook) {
|
|
141
|
+
return "continue";
|
|
142
|
+
}
|
|
143
|
+
if (key === 'onUpdate' && Array.isArray(hook)) {
|
|
144
|
+
hook.forEach(function (item, index) {
|
|
145
|
+
var _a;
|
|
146
|
+
(_a = json.hooks[key]) === null || _a === void 0 ? void 0 : _a.splice(index, 1, addPropertiesAndStateToHook(json, item));
|
|
147
|
+
});
|
|
148
|
+
return "continue";
|
|
149
|
+
}
|
|
150
|
+
json.hooks[key] = addPropertiesAndStateToHook(json, hook);
|
|
151
|
+
};
|
|
152
|
+
for (var _i = 0, hookKeys_1 = hookKeys; _i < hookKeys_1.length; _i++) {
|
|
153
|
+
var key = hookKeys_1[_i];
|
|
154
|
+
_loop_2(key);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function postProcessContext(json) {
|
|
158
|
+
var _a;
|
|
159
|
+
for (var _i = 0, _b = Object.keys(json.context.set); _i < _b.length; _i++) {
|
|
160
|
+
var key = _b[_i];
|
|
161
|
+
if ((_a = json.context.set[key]) === null || _a === void 0 ? void 0 : _a.ref) {
|
|
162
|
+
json.context.set[key].ref = addPropertiesAndState(json, json.context.set[key].ref);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function postProcess(json) {
|
|
167
|
+
// Call preventNameCollissions here, before the rest (where it applies -- function arguments for now)
|
|
168
|
+
// State (everything except type === 'property')
|
|
169
|
+
postProcessState(json);
|
|
170
|
+
// Children
|
|
171
|
+
postProcessChildren(json, json.children);
|
|
172
|
+
// Hooks
|
|
173
|
+
postProcessHooks(json);
|
|
174
|
+
// Context
|
|
175
|
+
postProcessContext(json);
|
|
176
|
+
}
|
|
177
|
+
exports.postProcess = postProcess;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stripQuotes = exports.insertAt = exports.uniqueName = void 0;
|
|
4
|
+
// helper functions for strings
|
|
5
|
+
var lodash_1 = require("lodash");
|
|
6
|
+
function uniqueName(existingItems, reference) {
|
|
7
|
+
var index = 0;
|
|
8
|
+
var match = false;
|
|
9
|
+
while (false === match) {
|
|
10
|
+
if (!existingItems.includes(reference)) {
|
|
11
|
+
match = true;
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
index++;
|
|
15
|
+
}
|
|
16
|
+
return (0, lodash_1.camelCase)("".concat(reference).concat(index));
|
|
17
|
+
}
|
|
18
|
+
exports.uniqueName = uniqueName;
|
|
19
|
+
function insertAt(string_, sub, pos) {
|
|
20
|
+
return "".concat(string_.slice(0, pos)).concat(sub).concat(string_.slice(pos));
|
|
21
|
+
}
|
|
22
|
+
exports.insertAt = insertAt;
|
|
23
|
+
function stripQuotes(string_) {
|
|
24
|
+
return string_.replace(/["']+/g, '');
|
|
25
|
+
}
|
|
26
|
+
exports.stripQuotes = stripQuotes;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseAction = void 0;
|
|
4
|
+
var string_1 = require("../helpers/string");
|
|
5
|
+
var astring_1 = require("astring");
|
|
6
|
+
function parseAction(json, nodeReference, attribute) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
var methodName = attribute.name;
|
|
9
|
+
var parameters = '';
|
|
10
|
+
if (['Identifier', 'ObjectExpression'].includes((_a = attribute.expression) === null || _a === void 0 ? void 0 : _a.type)) {
|
|
11
|
+
parameters = (0, astring_1.generate)(attribute.expression);
|
|
12
|
+
}
|
|
13
|
+
var actionHandler = (0, string_1.uniqueName)(Object.keys(json.state), 'actionHandler');
|
|
14
|
+
json.state[actionHandler] = {
|
|
15
|
+
code: 'null',
|
|
16
|
+
type: 'property',
|
|
17
|
+
};
|
|
18
|
+
var initHandler = "if (".concat(nodeReference, ") { ").concat(actionHandler, " = ").concat(methodName, "(").concat(nodeReference, ", ").concat(parameters, "); };\n");
|
|
19
|
+
// Handle Mount
|
|
20
|
+
var onMountCode = ((_b = json.hooks.onMount) === null || _b === void 0 ? void 0 : _b.code) || '';
|
|
21
|
+
json.hooks.onMount = {
|
|
22
|
+
code: "".concat(onMountCode, "\n").concat(initHandler, ";\n"),
|
|
23
|
+
};
|
|
24
|
+
// Handle Destroy / Re-Mount
|
|
25
|
+
var onReferenceUpdate = "\n if (!".concat(nodeReference, " && ").concat(actionHandler, ") { \n ").concat(actionHandler, "?.destroy(); \n ").concat(actionHandler, " = null; \n } else if (").concat(nodeReference, " && !").concat(actionHandler, ") { \n ").concat(initHandler, " \n };\n\n ");
|
|
26
|
+
json.hooks.onUpdate = json.hooks.onUpdate || [];
|
|
27
|
+
json.hooks.onUpdate.push({
|
|
28
|
+
code: onReferenceUpdate,
|
|
29
|
+
deps: "[".concat(nodeReference, "]"),
|
|
30
|
+
});
|
|
31
|
+
// Handle Update
|
|
32
|
+
if (parameters) {
|
|
33
|
+
var onUpdate = "".concat(actionHandler, "?.update(").concat(parameters, ")\n");
|
|
34
|
+
json.hooks.onUpdate.push({
|
|
35
|
+
code: onUpdate,
|
|
36
|
+
deps: "[".concat(parameters, "]"),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.parseAction = parseAction;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { TemplateNode } from 'svelte/types/compiler/interfaces';
|
|
2
|
+
import type { SveltosisComponent } from '../types';
|
|
3
|
+
export declare function parseEach(json: SveltosisComponent, node: TemplateNode): {
|
|
4
|
+
name: string;
|
|
5
|
+
scope: {
|
|
6
|
+
forName: any;
|
|
7
|
+
};
|
|
8
|
+
bindings: {
|
|
9
|
+
each: {
|
|
10
|
+
code: any;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
children: import("../../..").MitosisNode[];
|
|
14
|
+
'@type': "@builder.io/mitosis/node";
|
|
15
|
+
meta: import("../../../types/json").JSONObject;
|
|
16
|
+
properties: {
|
|
17
|
+
[key: string]: string | undefined;
|
|
18
|
+
};
|
|
19
|
+
} | {
|
|
20
|
+
name: string;
|
|
21
|
+
scope: {
|
|
22
|
+
forName: any;
|
|
23
|
+
};
|
|
24
|
+
bindings: {
|
|
25
|
+
each: {
|
|
26
|
+
code: any;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
children: import("../../..").MitosisNode[];
|
|
30
|
+
'@type': "@builder.io/mitosis/node";
|
|
31
|
+
meta: import("../../../types/json").JSONObject;
|
|
32
|
+
properties: {
|
|
33
|
+
[key: string]: string | undefined;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.parseEach = void 0;
|
|
15
|
+
var mitosis_node_1 = require("../helpers/mitosis-node");
|
|
16
|
+
var children_1 = require("../helpers/children");
|
|
17
|
+
function parseEach(json, node) {
|
|
18
|
+
return __assign(__assign({}, (0, mitosis_node_1.createMitosisNode)()), { name: 'For', scope: { forName: node.context.name }, bindings: {
|
|
19
|
+
each: {
|
|
20
|
+
code: node.expression.name,
|
|
21
|
+
},
|
|
22
|
+
}, children: (0, children_1.parseChildren)(json, node) });
|
|
23
|
+
}
|
|
24
|
+
exports.parseEach = parseEach;
|