@builder.io/mitosis 0.0.77 → 0.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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.d.ts +34 -0
- package/dist/src/parsers/{builder.js → builder/builder.js} +20 -15
- package/dist/src/parsers/{helpers/state.d.ts → builder/helpers.d.ts} +2 -2
- package/dist/src/parsers/builder/helpers.js +26 -0
- package/dist/src/parsers/builder/index.d.ts +1 -0
- package/dist/src/parsers/builder/index.js +17 -0
- package/dist/src/parsers/jsx/function-parser.js +56 -75
- package/dist/src/parsers/jsx/helpers.d.ts +1 -0
- package/dist/src/parsers/jsx/helpers.js +6 -2
- package/dist/src/parsers/jsx/{metadata.d.ts → hooks.d.ts} +1 -1
- package/dist/src/parsers/jsx/{metadata.js → hooks.js} +5 -5
- package/dist/src/parsers/jsx/index.d.ts +1 -2
- package/dist/src/parsers/jsx/index.js +3 -5
- package/dist/src/parsers/jsx/jsx.js +4 -2
- package/dist/src/parsers/jsx/state.d.ts +2 -4
- package/dist/src/parsers/jsx/state.js +50 -27
- 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/src/parsers/builder.d.ts +0 -104
- package/dist/src/parsers/constants/outdated-prefixes.d.ts +0 -10
- package/dist/src/parsers/constants/outdated-prefixes.js +0 -13
- package/dist/src/parsers/helpers/state.js +0 -30
|
@@ -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;
|
|
@@ -0,0 +1,222 @@
|
|
|
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.parseElement = void 0;
|
|
15
|
+
var astring_1 = require("astring");
|
|
16
|
+
var lodash_1 = require("lodash");
|
|
17
|
+
var mitosis_node_1 = require("../helpers/mitosis-node");
|
|
18
|
+
var children_1 = require("../helpers/children");
|
|
19
|
+
var string_1 = require("../helpers/string");
|
|
20
|
+
var actions_1 = require("./actions");
|
|
21
|
+
var SPECIAL_ELEMENTS = new Set(['svelte:component', 'svelte:element']);
|
|
22
|
+
function parseElement(json, node) {
|
|
23
|
+
var _a;
|
|
24
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
25
|
+
var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
|
|
26
|
+
mitosisNode.name = node.name;
|
|
27
|
+
var useReference = function () {
|
|
28
|
+
var nodeReference = (0, string_1.uniqueName)(Object.keys(json.refs), node.name);
|
|
29
|
+
if (!Object.keys(json.refs).includes(nodeReference)) {
|
|
30
|
+
json.refs[nodeReference] = { argument: '', typeParameter: '' };
|
|
31
|
+
mitosisNode.bindings.ref = {
|
|
32
|
+
code: nodeReference,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return nodeReference;
|
|
36
|
+
};
|
|
37
|
+
/*
|
|
38
|
+
Parse special elements such as svelte:component and svelte:element
|
|
39
|
+
*/
|
|
40
|
+
if (SPECIAL_ELEMENTS.has(node.name)) {
|
|
41
|
+
var expression = (0, astring_1.generate)(node.expression || node.tag);
|
|
42
|
+
var prefix = 'state';
|
|
43
|
+
if (json.props[expression]) {
|
|
44
|
+
prefix = 'props';
|
|
45
|
+
}
|
|
46
|
+
mitosisNode.name = "".concat(prefix, ".").concat(expression);
|
|
47
|
+
}
|
|
48
|
+
if ((_b = node.attributes) === null || _b === void 0 ? void 0 : _b.length) {
|
|
49
|
+
for (var _i = 0, _s = node.attributes; _i < _s.length; _i++) {
|
|
50
|
+
var attribute = _s[_i];
|
|
51
|
+
switch (attribute.type) {
|
|
52
|
+
case 'Attribute': {
|
|
53
|
+
switch ((_c = attribute.value[0]) === null || _c === void 0 ? void 0 : _c.type) {
|
|
54
|
+
case 'Text': {
|
|
55
|
+
var value = attribute.value[0];
|
|
56
|
+
// if there are already conditional class declarations
|
|
57
|
+
// add class names defined here to the bindings code as well
|
|
58
|
+
if (attribute.name === 'class' && ((_e = (_d = mitosisNode.bindings.class) === null || _d === void 0 ? void 0 : _d.code) === null || _e === void 0 ? void 0 : _e.length)) {
|
|
59
|
+
mitosisNode.bindings.class.code = (0, string_1.insertAt)(mitosisNode.bindings.class.code, " ".concat(value.data, " "), 1);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
mitosisNode.properties[attribute.name] = value.data;
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case 'MustacheTag': {
|
|
67
|
+
var value = attribute.value[0];
|
|
68
|
+
var expression = value.expression;
|
|
69
|
+
var code = (0, astring_1.generate)(expression);
|
|
70
|
+
if (attribute.name === 'class') {
|
|
71
|
+
code = ((_g = (_f = mitosisNode.bindings.class) === null || _f === void 0 ? void 0 : _f.code) === null || _g === void 0 ? void 0 : _g.length)
|
|
72
|
+
? (0, string_1.insertAt)(mitosisNode.bindings.class.code, ' ${' + code + '}', mitosisNode.bindings.class.code.length - 1)
|
|
73
|
+
: '`${' + code + '}`';
|
|
74
|
+
}
|
|
75
|
+
mitosisNode.bindings[attribute.name] = {
|
|
76
|
+
code: code,
|
|
77
|
+
};
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case 'AttributeShorthand': {
|
|
81
|
+
// e.g. <input {value}/>
|
|
82
|
+
var value = attribute.value[0];
|
|
83
|
+
var code = value.expression.name;
|
|
84
|
+
mitosisNode.bindings[code] = {
|
|
85
|
+
code: code,
|
|
86
|
+
};
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
default: {
|
|
90
|
+
var name_1 = attribute.name;
|
|
91
|
+
mitosisNode.bindings[name_1] = { code: attribute.value.toString() };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case 'Spread': {
|
|
97
|
+
var expression = attribute.expression;
|
|
98
|
+
mitosisNode.bindings[expression.name] = {
|
|
99
|
+
code: expression.name,
|
|
100
|
+
type: 'spread',
|
|
101
|
+
};
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
case 'EventHandler': {
|
|
105
|
+
var object = { code: '', arguments: [] };
|
|
106
|
+
if (((_h = attribute.expression) === null || _h === void 0 ? void 0 : _h.type) === 'ArrowTypeFunction') {
|
|
107
|
+
var expression = attribute.expression;
|
|
108
|
+
object = {
|
|
109
|
+
code: (0, astring_1.generate)(expression.body),
|
|
110
|
+
arguments: (_k = (_j = expression.body) === null || _j === void 0 ? void 0 : _j.arguments) === null || _k === void 0 ? void 0 : _k.map(function (a) { return a.name; }),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
else if (attribute.expression) {
|
|
114
|
+
var code = (0, astring_1.generate)(attribute.expression);
|
|
115
|
+
if (!((_l = attribute.expression.arguments) === null || _l === void 0 ? void 0 : _l.length) &&
|
|
116
|
+
!((_o = (_m = attribute.expression.body) === null || _m === void 0 ? void 0 : _m.arguments) === null || _o === void 0 ? void 0 : _o.length)) {
|
|
117
|
+
code = code.replace(/\(\)/g, '(event)');
|
|
118
|
+
}
|
|
119
|
+
object = {
|
|
120
|
+
code: code,
|
|
121
|
+
arguments: ['event'],
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
object = {
|
|
126
|
+
code: "props.on".concat((0, lodash_1.upperFirst)(attribute.name), "(event)"),
|
|
127
|
+
arguments: ['event'],
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
mitosisNode.bindings["on".concat((0, lodash_1.upperFirst)(attribute.name))] = object;
|
|
131
|
+
// add event handlers as props (e.g. props.onClick)
|
|
132
|
+
json.props = __assign(__assign({}, json.props), (_a = {}, _a["on".concat((0, lodash_1.upperFirst)(attribute.name))] = { default: function () { return ({}); } }, _a));
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
case 'Binding': {
|
|
136
|
+
/*
|
|
137
|
+
adding onChange handlers for bind:group and bind:property is done during post processing
|
|
138
|
+
same goes for replacing the group binding with checked
|
|
139
|
+
see helpers/post-process.ts
|
|
140
|
+
*/
|
|
141
|
+
var expression = attribute.expression;
|
|
142
|
+
var binding = expression.name;
|
|
143
|
+
var name_2 = attribute.name;
|
|
144
|
+
// template ref
|
|
145
|
+
if (attribute.name === 'this') {
|
|
146
|
+
name_2 = 'ref';
|
|
147
|
+
json.refs[binding] = {
|
|
148
|
+
argument: 'null',
|
|
149
|
+
typeParameter: 'any',
|
|
150
|
+
};
|
|
151
|
+
if (Object.prototype.hasOwnProperty.call(json.state, binding)) {
|
|
152
|
+
delete json.state[binding];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (name_2 !== 'ref' && name_2 !== 'group' && name_2 !== 'this') {
|
|
156
|
+
var onChangeCode = "".concat(binding, " = event.target.value");
|
|
157
|
+
mitosisNode.bindings['onChange'] = {
|
|
158
|
+
code: onChangeCode,
|
|
159
|
+
arguments: ['event'],
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
mitosisNode.bindings[name_2] = {
|
|
163
|
+
code: binding,
|
|
164
|
+
};
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case 'Class': {
|
|
168
|
+
var expression = attribute.expression;
|
|
169
|
+
// conditional classes (e.g. class:disabled or class:disabled={disabled})
|
|
170
|
+
var binding = "".concat((0, astring_1.generate)(expression), " ? '").concat(attribute.name, "' : ''");
|
|
171
|
+
var code = '';
|
|
172
|
+
// if there are existing class declarations
|
|
173
|
+
// add them here instead and remove them from properties
|
|
174
|
+
// to avoid duplicate class declarations in certain frameworks
|
|
175
|
+
if ((_q = (_p = mitosisNode.properties) === null || _p === void 0 ? void 0 : _p.class) === null || _q === void 0 ? void 0 : _q.length) {
|
|
176
|
+
code = "".concat(mitosisNode.properties.class, " ");
|
|
177
|
+
delete mitosisNode.properties.class;
|
|
178
|
+
}
|
|
179
|
+
// if class code is already defined (meaning there is more than 1 conditional class declaration)
|
|
180
|
+
// append it to the string instead of assigning it
|
|
181
|
+
if (mitosisNode.bindings.class &&
|
|
182
|
+
Object.prototype.hasOwnProperty.call(mitosisNode.bindings.class, 'code') &&
|
|
183
|
+
((_r = mitosisNode.bindings.class) === null || _r === void 0 ? void 0 : _r.code.length)) {
|
|
184
|
+
code = (0, string_1.insertAt)(mitosisNode.bindings.class.code, ' ${' + binding + '}', mitosisNode.bindings.class.code.length - 1);
|
|
185
|
+
mitosisNode.bindings.class = {
|
|
186
|
+
code: code,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// otherwise just assign
|
|
191
|
+
code = '`' + code + '${' + binding + '}`';
|
|
192
|
+
mitosisNode.bindings.class = {
|
|
193
|
+
code: code,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
case 'Action': {
|
|
199
|
+
(0, actions_1.parseAction)(json, useReference(), attribute);
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
// No default
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
var filteredChildren = [];
|
|
207
|
+
if (node.children) {
|
|
208
|
+
filteredChildren = (0, children_1.filterChildren)(node.children);
|
|
209
|
+
}
|
|
210
|
+
if (filteredChildren.length === 1 && filteredChildren[0].type === 'RawMustacheTag') {
|
|
211
|
+
var child = filteredChildren[0];
|
|
212
|
+
mitosisNode.children = [];
|
|
213
|
+
mitosisNode.bindings.innerHTML = {
|
|
214
|
+
code: (0, astring_1.generate)(child.expression),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
mitosisNode.children = (0, children_1.parseChildren)(json, node);
|
|
219
|
+
}
|
|
220
|
+
return mitosisNode;
|
|
221
|
+
}
|
|
222
|
+
exports.parseElement = parseElement;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseFragment = void 0;
|
|
4
|
+
var mitosis_node_1 = require("../helpers/mitosis-node");
|
|
5
|
+
var children_1 = require("../helpers/children");
|
|
6
|
+
function parseFragment(json, node) {
|
|
7
|
+
var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
|
|
8
|
+
mitosisNode.name = 'Fragment';
|
|
9
|
+
mitosisNode.children = (0, children_1.parseChildren)(json, node);
|
|
10
|
+
// if there is only one child, don't even bother to render the fragment as it is not necessary
|
|
11
|
+
if (mitosisNode.children.length === 1) {
|
|
12
|
+
mitosisNode = mitosisNode.children[0];
|
|
13
|
+
}
|
|
14
|
+
return mitosisNode;
|
|
15
|
+
}
|
|
16
|
+
exports.parseFragment = parseFragment;
|
|
@@ -0,0 +1,37 @@
|
|
|
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.parseIfElse = void 0;
|
|
15
|
+
var astring_1 = require("astring");
|
|
16
|
+
var _1 = require(".");
|
|
17
|
+
var mitosis_node_1 = require("../helpers/mitosis-node");
|
|
18
|
+
var children_1 = require("../helpers/children");
|
|
19
|
+
function parseIfElse(json, node) {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
|
|
22
|
+
mitosisNode.name = 'Show';
|
|
23
|
+
mitosisNode.bindings = {
|
|
24
|
+
when: {
|
|
25
|
+
code: (0, astring_1.generate)(node.expression),
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
mitosisNode.children = (0, children_1.parseChildren)(json, node);
|
|
29
|
+
if (node.else) {
|
|
30
|
+
mitosisNode.meta.else =
|
|
31
|
+
((_a = node.else.children) === null || _a === void 0 ? void 0 : _a.length) === 1
|
|
32
|
+
? (0, _1.parseHtmlNode)(json, node.else.children[0])
|
|
33
|
+
: __assign(__assign({}, (0, mitosis_node_1.createMitosisNode)()), { name: 'div', children: (_c = (_b = node.else.children) === null || _b === void 0 ? void 0 : _b.map(function (n) { return (0, _1.parseHtmlNode)(json, n); })) !== null && _c !== void 0 ? _c : [] });
|
|
34
|
+
}
|
|
35
|
+
return mitosisNode;
|
|
36
|
+
}
|
|
37
|
+
exports.parseIfElse = parseIfElse;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MitosisNode } from '../../../types/mitosis-node';
|
|
2
|
+
import type { Ast, TemplateNode } from 'svelte/types/compiler/interfaces';
|
|
3
|
+
import type { SveltosisComponent } from '../types';
|
|
4
|
+
export declare function parseHtml(ast: Ast, json: SveltosisComponent): void;
|
|
5
|
+
export declare function parseHtmlNode(json: SveltosisComponent, node: TemplateNode): MitosisNode | undefined;
|