@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
|
@@ -99,9 +99,11 @@ var addUpdateAfterSet = function (json, options) {
|
|
|
99
99
|
if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
|
|
100
100
|
for (var key in item.bindings) {
|
|
101
101
|
var value = (_a = item.bindings[key]) === null || _a === void 0 ? void 0 : _a.code;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
if (value) {
|
|
103
|
+
var newValue = addUpdateAfterSetInCode(value, options);
|
|
104
|
+
if (newValue !== value) {
|
|
105
|
+
item.bindings[key].code = newValue;
|
|
106
|
+
}
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
}
|
|
@@ -351,6 +353,7 @@ var blockToHtml = function (json, options, blockOptions) {
|
|
|
351
353
|
return str;
|
|
352
354
|
};
|
|
353
355
|
function addUpdateAfterSetInCode(code, options, useString) {
|
|
356
|
+
if (code === void 0) { code = ''; }
|
|
354
357
|
if (useString === void 0) { useString = options.format === 'class' ? 'this.update' : 'update'; }
|
|
355
358
|
var updates = 0;
|
|
356
359
|
return (0, babel_transform_1.babelTransformExpression)(code, {
|
|
@@ -16,7 +16,6 @@ exports.componentToQwik = void 0;
|
|
|
16
16
|
var babel_transform_1 = require("../../helpers/babel-transform");
|
|
17
17
|
var fast_clone_1 = require("../../helpers/fast-clone");
|
|
18
18
|
var collect_css_1 = require("../../helpers/styles/collect-css");
|
|
19
|
-
var mitosis_component_1 = require("../../types/mitosis-component");
|
|
20
19
|
var state_1 = require("../../helpers/state");
|
|
21
20
|
var add_prevent_default_1 = require("./add-prevent-default");
|
|
22
21
|
var convert_method_to_function_1 = require("./convert-method-to-function");
|
|
@@ -24,7 +23,7 @@ var jsx_1 = require("./jsx");
|
|
|
24
23
|
var src_generator_1 = require("./src-generator");
|
|
25
24
|
var plugins_1 = require("../../modules/plugins");
|
|
26
25
|
var traverse_1 = __importDefault(require("traverse"));
|
|
27
|
-
var
|
|
26
|
+
var stable_inject_1 = require("./stable-inject");
|
|
28
27
|
Error.stackTraceLimit = 9999;
|
|
29
28
|
// TODO(misko): styles are not processed.
|
|
30
29
|
var DEBUG = false;
|
|
@@ -84,7 +83,7 @@ var componentToQwik = function (userOptions) {
|
|
|
84
83
|
: (0, src_generator_1.invoke)(file.import(file.qwikModule, 'component$'), [componentFn]), true, true);
|
|
85
84
|
file.exportDefault(component.name);
|
|
86
85
|
emitStyles(file, css_1);
|
|
87
|
-
DEBUG && file.exportConst('COMPONENT',
|
|
86
|
+
DEBUG && file.exportConst('COMPONENT', JSON.stringify(component));
|
|
88
87
|
var sourceFile = '// GENERATED BY MITOSIS\n\n' + file.toString();
|
|
89
88
|
if (userOptions.plugins) {
|
|
90
89
|
sourceFile = (0, plugins_1.runPreCodePlugins)(sourceFile, userOptions.plugins);
|
|
@@ -108,7 +107,7 @@ function emitExports(file, component) {
|
|
|
108
107
|
}
|
|
109
108
|
function emitTagNameHack(file, component, metadataValue) {
|
|
110
109
|
if (typeof metadataValue === 'string' && metadataValue) {
|
|
111
|
-
file.src.emit(metadataValue, '=', (0, convert_method_to_function_1.convertMethodToFunction)(metadataValue,
|
|
110
|
+
file.src.emit(metadataValue, '=', (0, convert_method_to_function_1.convertMethodToFunction)(metadataValue, getStateMethodsAndGetters(component.state), getLexicalScopeVars(component)), ';');
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
function emitUseClientEffect(file, component) {
|
|
@@ -165,20 +164,22 @@ function emitUseContextProvider(file, component) {
|
|
|
165
164
|
Object.keys(component.context.set).forEach(function (ctxKey) {
|
|
166
165
|
var context = component.context.set[ctxKey];
|
|
167
166
|
file.src.emit(file.import(file.qwikModule, 'useContextProvider').localName, '(', context.name, ',', file.import(file.qwikModule, 'useStore').localName, '({');
|
|
168
|
-
context.value
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
167
|
+
for (var _i = 0, _a = Object.keys(context.value || {}); _i < _a.length; _i++) {
|
|
168
|
+
var prop = _a[_i];
|
|
169
|
+
var propValue = context.value[prop];
|
|
170
|
+
file.src.emit(prop, ':');
|
|
171
|
+
switch (propValue === null || propValue === void 0 ? void 0 : propValue.type) {
|
|
172
|
+
case 'getter':
|
|
173
173
|
file.src.emit('(()=>{', extractGetterBody(propValue.code), '})(),');
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
continue;
|
|
175
|
+
case 'function':
|
|
176
|
+
case 'method':
|
|
176
177
|
throw new Error('Qwik: Functions are not supported in context');
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
178
|
+
case 'property':
|
|
179
|
+
file.src.emit((0, stable_inject_1.stableInject)(propValue.code), ',');
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
182
183
|
file.src.emit('})', ');');
|
|
183
184
|
});
|
|
184
185
|
}
|
|
@@ -218,7 +219,7 @@ function emitUseStore(file, stateInit) {
|
|
|
218
219
|
file.src.emit('<any>');
|
|
219
220
|
}
|
|
220
221
|
file.src.emit('(');
|
|
221
|
-
file.src.emit((0,
|
|
222
|
+
file.src.emit((0, stable_inject_1.stableInject)(state));
|
|
222
223
|
file.src.emit(');');
|
|
223
224
|
}
|
|
224
225
|
else {
|
|
@@ -236,7 +237,7 @@ function emitStateMethodsAndRewriteBindings(file, component, metadata) {
|
|
|
236
237
|
var _a;
|
|
237
238
|
var lexicalArgs = getLexicalScopeVars(component);
|
|
238
239
|
var state = emitStateMethods(file, component.state, lexicalArgs);
|
|
239
|
-
var methodMap =
|
|
240
|
+
var methodMap = getStateMethodsAndGetters(component.state);
|
|
240
241
|
rewriteCodeExpr(component, methodMap, lexicalArgs, (_a = metadata.qwik) === null || _a === void 0 ? void 0 : _a.replace);
|
|
241
242
|
return state;
|
|
242
243
|
}
|
|
@@ -246,7 +247,7 @@ var checkIsObjectWithCodeBlock = function (obj) {
|
|
|
246
247
|
function rewriteCodeExpr(component, methodMap, lexicalArgs, replace) {
|
|
247
248
|
if (replace === void 0) { replace = {}; }
|
|
248
249
|
(0, traverse_1.default)(component).forEach(function (item) {
|
|
249
|
-
if (!
|
|
250
|
+
if (!checkIsObjectWithCodeBlock(item)) {
|
|
250
251
|
return;
|
|
251
252
|
}
|
|
252
253
|
var code = (0, convert_method_to_function_1.convertMethodToFunction)(item.code, methodMap, lexicalArgs);
|
|
@@ -273,34 +274,38 @@ function emitImports(file, component) {
|
|
|
273
274
|
function emitStateMethods(file, componentState, lexicalArgs) {
|
|
274
275
|
var stateValues = {};
|
|
275
276
|
var stateInit = [stateValues];
|
|
276
|
-
var methodMap =
|
|
277
|
-
|
|
277
|
+
var methodMap = getStateMethodsAndGetters(componentState);
|
|
278
|
+
for (var key in componentState) {
|
|
278
279
|
var stateValue = componentState[key];
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
280
|
+
switch (stateValue === null || stateValue === void 0 ? void 0 : stateValue.type) {
|
|
281
|
+
case 'method':
|
|
282
|
+
case 'getter':
|
|
283
|
+
case 'function':
|
|
284
|
+
var code = stateValue.code;
|
|
285
|
+
var prefixIdx = 0;
|
|
286
|
+
if (stateValue.type === 'getter') {
|
|
287
|
+
prefixIdx += 'get '.length;
|
|
288
|
+
}
|
|
289
|
+
else if (stateValue.type === 'function') {
|
|
290
|
+
prefixIdx += 'function '.length;
|
|
291
|
+
}
|
|
292
|
+
code = code.substring(prefixIdx);
|
|
293
|
+
code = (0, convert_method_to_function_1.convertMethodToFunction)(code, methodMap, lexicalArgs).replace('(', "(".concat(lexicalArgs.join(','), ","));
|
|
294
|
+
var functionName = code.split(/\(/)[0];
|
|
295
|
+
if (stateValue.type === 'getter') {
|
|
296
|
+
stateInit.push("state.".concat(key, "=").concat(functionName, "(").concat(lexicalArgs.join(','), ")"));
|
|
297
|
+
}
|
|
298
|
+
if (!file.options.isTypeScript) {
|
|
299
|
+
// Erase type information
|
|
300
|
+
code = convertTypeScriptToJS(code);
|
|
301
|
+
}
|
|
302
|
+
file.exportConst(functionName, 'function ' + code, true);
|
|
303
|
+
continue;
|
|
304
|
+
case 'property':
|
|
305
|
+
stateValues[key] = stateValue.code;
|
|
306
|
+
continue;
|
|
302
307
|
}
|
|
303
|
-
}
|
|
308
|
+
}
|
|
304
309
|
return stateInit;
|
|
305
310
|
}
|
|
306
311
|
function convertTypeScriptToJS(code) {
|
|
@@ -311,7 +316,7 @@ function extractGetterBody(code) {
|
|
|
311
316
|
var end = code.lastIndexOf('}');
|
|
312
317
|
return code.substring(start + 1, end).trim();
|
|
313
318
|
}
|
|
314
|
-
function
|
|
319
|
+
function getStateMethodsAndGetters(state) {
|
|
315
320
|
var methodMap = {};
|
|
316
321
|
Object.keys(state).forEach(function (key) {
|
|
317
322
|
var stateVal = state[key];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Similar to our `stableJSONSerialize` function, except that it does not stringify the values: it injects them as-is.
|
|
3
|
+
* This is needed for our `MitosisState` values which are JS expressions stored as strings.
|
|
4
|
+
*/
|
|
5
|
+
export declare function stableInject(obj: any): string;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stableInject = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Similar to our `stableJSONSerialize` function, except that it does not stringify the values: it injects them as-is.
|
|
6
|
+
* This is needed for our `MitosisState` values which are JS expressions stored as strings.
|
|
7
|
+
*/
|
|
8
|
+
function stableInject(obj) {
|
|
9
|
+
var output = [];
|
|
10
|
+
_serialize(output, obj);
|
|
11
|
+
return output.join('');
|
|
12
|
+
}
|
|
13
|
+
exports.stableInject = stableInject;
|
|
14
|
+
function _serialize(output, obj) {
|
|
15
|
+
if (obj == null) {
|
|
16
|
+
output.push('null');
|
|
17
|
+
}
|
|
18
|
+
else if (typeof obj === 'object') {
|
|
19
|
+
if (Array.isArray(obj)) {
|
|
20
|
+
output.push('[');
|
|
21
|
+
var sep = '';
|
|
22
|
+
for (var i = 0; i < obj.length; i++) {
|
|
23
|
+
output.push(sep);
|
|
24
|
+
_serialize(output, obj[i]);
|
|
25
|
+
sep = ',';
|
|
26
|
+
}
|
|
27
|
+
output.push(']');
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
var keys = Object.keys(obj).sort();
|
|
31
|
+
output.push('{');
|
|
32
|
+
var sep = '';
|
|
33
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
34
|
+
var key = keys_1[_i];
|
|
35
|
+
var value = obj[key];
|
|
36
|
+
if (value !== undefined) {
|
|
37
|
+
output.push(sep);
|
|
38
|
+
output.push(JSON.stringify(key));
|
|
39
|
+
output.push(':');
|
|
40
|
+
_serialize(output, value);
|
|
41
|
+
sep = ',';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
output.push('}');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
output.push(obj);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.updateStateSettersInCode = exports.updateStateSetters = exports.getUseStateCode = exports.processHookCode = void 0;
|
|
7
7
|
var core_1 = require("@babel/core");
|
|
8
|
-
var json5_1 = __importDefault(require("json5"));
|
|
9
8
|
var traverse_1 = __importDefault(require("traverse"));
|
|
10
9
|
var capitalize_1 = require("../../helpers/capitalize");
|
|
11
10
|
var is_mitosis_node_1 = require("../../helpers/is-mitosis-node");
|
|
@@ -36,11 +35,14 @@ var processStateValue = function (options) {
|
|
|
36
35
|
var mapValue = valueMapper(options);
|
|
37
36
|
return function (_a) {
|
|
38
37
|
var key = _a[0], stateVal = _a[1];
|
|
38
|
+
if (!stateVal) {
|
|
39
|
+
return '';
|
|
40
|
+
}
|
|
39
41
|
var getDefaultCase = function () {
|
|
40
|
-
return (0, function_1.pipe)(value,
|
|
42
|
+
return (0, function_1.pipe)(value, mapValue, function (x) { return "const [".concat(key, ", ").concat(getSetStateFnName(key), "] = useState(() => (").concat(x, "))"); });
|
|
41
43
|
};
|
|
42
|
-
var value = stateVal
|
|
43
|
-
var type = stateVal
|
|
44
|
+
var value = stateVal.code || '';
|
|
45
|
+
var type = stateVal.type;
|
|
44
46
|
if (typeof value === 'string') {
|
|
45
47
|
switch (type) {
|
|
46
48
|
case 'getter':
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getSignalsCode = void 0;
|
|
7
|
-
var json5_1 = __importDefault(require("json5"));
|
|
8
4
|
var function_1 = require("fp-ts/lib/function");
|
|
9
5
|
var patterns_1 = require("../../../helpers/patterns");
|
|
10
6
|
var helpers_1 = require("./helpers");
|
|
@@ -13,11 +9,14 @@ var processSignalStateValue = function (_a) {
|
|
|
13
9
|
var mapValue = (0, helpers_1.updateStateCode)({ options: options, component: component });
|
|
14
10
|
return function (_a) {
|
|
15
11
|
var key = _a[0], stateVal = _a[1];
|
|
12
|
+
if (!stateVal) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
16
15
|
var getDefaultCase = function () {
|
|
17
|
-
return (0, function_1.pipe)(value,
|
|
16
|
+
return (0, function_1.pipe)(value, mapValue, function (x) { return "const [".concat(key, ", ").concat((0, helpers_1.getStateSetterName)(key), "] = createSignal(").concat(x, ")"); });
|
|
18
17
|
};
|
|
19
|
-
var value = stateVal
|
|
20
|
-
var type = stateVal
|
|
18
|
+
var value = stateVal.code;
|
|
19
|
+
var type = stateVal.type;
|
|
21
20
|
if (typeof value === 'string') {
|
|
22
21
|
switch (type) {
|
|
23
22
|
case 'getter':
|
|
@@ -8,13 +8,9 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
8
8
|
}
|
|
9
9
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.getStoreCode = void 0;
|
|
16
13
|
var core_1 = require("@babel/core");
|
|
17
|
-
var json5_1 = __importDefault(require("json5"));
|
|
18
14
|
var babel_transform_1 = require("../../../helpers/babel-transform");
|
|
19
15
|
var capitalize_1 = require("../../../helpers/capitalize");
|
|
20
16
|
var function_1 = require("fp-ts/lib/function");
|
|
@@ -45,12 +41,15 @@ var getStoreCode = function (_a) {
|
|
|
45
41
|
var mapValue = (0, helpers_1.updateStateCode)({ options: options, component: component });
|
|
46
42
|
var stateUpdater = function (_a) {
|
|
47
43
|
var key = _a[0], stateVal = _a[1];
|
|
44
|
+
if (!stateVal) {
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
48
47
|
var getCreateStoreStr = function (initialValue) {
|
|
49
48
|
return "const [".concat(key, ", ").concat((0, helpers_1.getStateSetterName)(key), "] = createStore(").concat(initialValue, ")");
|
|
50
49
|
};
|
|
51
|
-
var getDefaultCase = function () { return (0, function_1.pipe)(value,
|
|
52
|
-
var value = stateVal
|
|
53
|
-
var type = stateVal
|
|
50
|
+
var getDefaultCase = function () { return (0, function_1.pipe)(value, mapValue, getCreateStoreStr); };
|
|
51
|
+
var value = stateVal.code;
|
|
52
|
+
var type = stateVal.type;
|
|
54
53
|
if (typeof value === 'string') {
|
|
55
54
|
switch (type) {
|
|
56
55
|
case 'getter':
|
|
@@ -3,6 +3,5 @@ import type { Visitor } from '@babel/traverse';
|
|
|
3
3
|
export declare const babelTransform: <VisitorContextType = any>(code: string, visitor?: babel.Visitor<VisitorContextType> | undefined) => babel.BabelFileResult | null;
|
|
4
4
|
export declare const babelTransformCode: <VisitorContextType = any>(code: string, visitor?: babel.Visitor<VisitorContextType> | undefined) => string;
|
|
5
5
|
declare type ExpressionType = 'expression' | 'unknown' | 'block' | 'functionBody';
|
|
6
|
-
export declare const getType: (code: string, initialType: ExpressionType) => ExpressionType;
|
|
7
6
|
export declare const babelTransformExpression: <VisitorContextType = any>(code: string, visitor: babel.Visitor<VisitorContextType>, initialType?: ExpressionType) => string;
|
|
8
7
|
export {};
|
|
@@ -32,7 +32,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
32
32
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.babelTransformExpression = exports.
|
|
35
|
+
exports.babelTransformExpression = exports.babelTransformCode = exports.babelTransform = void 0;
|
|
36
36
|
var babel = __importStar(require("@babel/core"));
|
|
37
37
|
var jsxPlugin = require('@babel/plugin-syntax-jsx');
|
|
38
38
|
var tsPreset = require('@babel/preset-typescript');
|
|
@@ -104,13 +104,12 @@ var getType = function (code, initialType) {
|
|
|
104
104
|
}
|
|
105
105
|
return initialType;
|
|
106
106
|
};
|
|
107
|
-
exports.getType = getType;
|
|
108
107
|
var babelTransformExpression = function (code, visitor, initialType) {
|
|
109
108
|
if (initialType === void 0) { initialType = 'unknown'; }
|
|
110
109
|
if (!code) {
|
|
111
110
|
return '';
|
|
112
111
|
}
|
|
113
|
-
var type =
|
|
112
|
+
var type = getType(code, initialType);
|
|
114
113
|
var useCode = type === 'functionBody' ? "function(){".concat(code, "}") : code;
|
|
115
114
|
if (type !== 'expression') {
|
|
116
115
|
try {
|
|
@@ -10,12 +10,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
14
|
exports.getStateObjectStringFromComponent = exports.stringifyContextValue = exports.getMemberObjectString = void 0;
|
|
18
|
-
var json5_1 = __importDefault(require("json5"));
|
|
19
15
|
var DEFAULT_OPTIONS = {
|
|
20
16
|
format: 'object',
|
|
21
17
|
keyPrefix: '',
|
|
@@ -56,7 +52,7 @@ var convertStateMemberToString = function (_a) {
|
|
|
56
52
|
if (data === false) {
|
|
57
53
|
return undefined;
|
|
58
54
|
}
|
|
59
|
-
return "".concat(keyPrefix, " ").concat(key).concat(keyValueDelimiter, " ").concat(valueMapper(
|
|
55
|
+
return "".concat(keyPrefix, " ").concat(key).concat(keyValueDelimiter, " ").concat(valueMapper(code, 'data', typeParameter));
|
|
60
56
|
}
|
|
61
57
|
default:
|
|
62
58
|
break;
|
|
@@ -6,7 +6,7 @@ function handleMissingState(json) {
|
|
|
6
6
|
var stateUsed = (0, get_state_used_1.getStateUsed)(json);
|
|
7
7
|
Array.from(stateUsed).forEach(function (property) {
|
|
8
8
|
if (!(property in json.state)) {
|
|
9
|
-
json.state[property] = { code: null, type: 'property' };
|
|
9
|
+
json.state[property] = { code: 'null', type: 'property' };
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
}
|
|
@@ -8,7 +8,7 @@ function processHttpRequests(json) {
|
|
|
8
8
|
if (httpRequests) {
|
|
9
9
|
for (var key in httpRequests) {
|
|
10
10
|
if (!json.state[key]) {
|
|
11
|
-
json.state[key] = { code: null, type: 'property' };
|
|
11
|
+
json.state[key] = { code: 'null', type: 'property' };
|
|
12
12
|
}
|
|
13
13
|
var value = httpRequests[key];
|
|
14
14
|
// TODO: unravel our proxy. aka parse out methods, header, etc
|
package/dist/src/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export declare const useDefaultProps: <T = {
|
|
|
31
31
|
}>(value: T) => T;
|
|
32
32
|
export declare const useStyle: (value: string) => any;
|
|
33
33
|
export * from './parsers/jsx';
|
|
34
|
+
export * from './parsers/svelte';
|
|
34
35
|
export * from './parsers/builder';
|
|
35
36
|
export * from './parsers/angular';
|
|
36
37
|
export * from './parsers/context';
|
package/dist/src/index.js
CHANGED
|
@@ -68,6 +68,7 @@ exports.useDefaultProps = useDefaultProps;
|
|
|
68
68
|
var useStyle = function (value) { return null; };
|
|
69
69
|
exports.useStyle = useStyle;
|
|
70
70
|
__exportStar(require("./parsers/jsx"), exports);
|
|
71
|
+
__exportStar(require("./parsers/svelte"), exports);
|
|
71
72
|
__exportStar(require("./parsers/builder"), exports);
|
|
72
73
|
__exportStar(require("./parsers/angular"), exports);
|
|
73
74
|
__exportStar(require("./parsers/context"), exports);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BuilderContent, BuilderElement } from '@builder.io/sdk';
|
|
2
|
+
import { MitosisNode } from '../../types/mitosis-node';
|
|
3
|
+
import { MitosisComponent, MitosisState } from '../..';
|
|
4
|
+
declare type InternalOptions = {
|
|
5
|
+
skipMapper?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const symbolBlocksAsChildren = false;
|
|
8
|
+
export declare type BuilderToMitosisOptions = {
|
|
9
|
+
context?: {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
};
|
|
12
|
+
includeBuilderExtras?: boolean;
|
|
13
|
+
preserveTextBlocks?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare type InternalBuilderToMitosisOptions = BuilderToMitosisOptions & {
|
|
16
|
+
context: {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare const builderElementToMitosisNode: (block: BuilderElement, options: BuilderToMitosisOptions, _internalOptions?: InternalOptions) => MitosisNode;
|
|
21
|
+
/**
|
|
22
|
+
* Take Builder custom jsCode and extract the contents of the useState hook
|
|
23
|
+
* and return it as a JS object along with the inputted code with the hook
|
|
24
|
+
* code extracted
|
|
25
|
+
*/
|
|
26
|
+
export declare function extractStateHook(code: string): {
|
|
27
|
+
code: string;
|
|
28
|
+
state: MitosisState;
|
|
29
|
+
};
|
|
30
|
+
export declare function convertExportDefaultToReturn(code: string): string;
|
|
31
|
+
export declare const createBuilderElement: (options?: Partial<BuilderElement>) => BuilderElement;
|
|
32
|
+
export declare const isBuilderElement: (el: unknown) => el is BuilderElement;
|
|
33
|
+
export declare const builderContentToMitosisComponent: (builderContent: BuilderContent, options?: BuilderToMitosisOptions) => MitosisComponent;
|
|
34
|
+
export {};
|
|
@@ -42,16 +42,17 @@ var babel = __importStar(require("@babel/core"));
|
|
|
42
42
|
var generator_1 = __importDefault(require("@babel/generator"));
|
|
43
43
|
var json5_1 = __importDefault(require("json5"));
|
|
44
44
|
var lodash_1 = require("lodash");
|
|
45
|
-
var fast_clone_1 = require("
|
|
45
|
+
var fast_clone_1 = require("../../helpers/fast-clone");
|
|
46
46
|
var traverse_1 = __importDefault(require("traverse"));
|
|
47
|
-
var media_sizes_1 = require("
|
|
48
|
-
var capitalize_1 = require("
|
|
49
|
-
var create_mitosis_component_1 = require("
|
|
50
|
-
var create_mitosis_node_1 = require("
|
|
51
|
-
var jsx_1 = require("
|
|
52
|
-
var parsers_1 = require("
|
|
53
|
-
var __1 = require("
|
|
54
|
-
var
|
|
47
|
+
var media_sizes_1 = require("../../constants/media-sizes");
|
|
48
|
+
var capitalize_1 = require("../../helpers/capitalize");
|
|
49
|
+
var create_mitosis_component_1 = require("../../helpers/create-mitosis-component");
|
|
50
|
+
var create_mitosis_node_1 = require("../../helpers/create-mitosis-node");
|
|
51
|
+
var jsx_1 = require("../jsx");
|
|
52
|
+
var parsers_1 = require("../../helpers/parsers");
|
|
53
|
+
var __1 = require("../..");
|
|
54
|
+
var helpers_1 = require("./helpers");
|
|
55
|
+
var state_1 = require("../jsx/state");
|
|
55
56
|
// Omit some superflous styles that can come from Builder's web importer
|
|
56
57
|
var styleOmitList = [
|
|
57
58
|
'backgroundRepeatX',
|
|
@@ -573,7 +574,7 @@ function extractStateHook(code) {
|
|
|
573
574
|
if (types.isIdentifier(expression.callee) && expression.callee.name === 'useState') {
|
|
574
575
|
var arg = expression.arguments[0];
|
|
575
576
|
if (types.isObjectExpression(arg)) {
|
|
576
|
-
state = (0,
|
|
577
|
+
state = (0, state_1.parseStateObjectToMitosisState)(arg);
|
|
577
578
|
newBody.splice(i, 1);
|
|
578
579
|
}
|
|
579
580
|
}
|
|
@@ -584,7 +585,7 @@ function extractStateHook(code) {
|
|
|
584
585
|
expression.callee.property.name === 'assign') {
|
|
585
586
|
var arg = expression.arguments[1];
|
|
586
587
|
if (types.isObjectExpression(arg)) {
|
|
587
|
-
state = (0,
|
|
588
|
+
state = (0, state_1.parseStateObjectToMitosisState)(arg);
|
|
588
589
|
newBody.splice(i, 1);
|
|
589
590
|
}
|
|
590
591
|
}
|
|
@@ -702,15 +703,19 @@ var builderContentPartToMitosisComponent = function (builderContent, options) {
|
|
|
702
703
|
var _k = extractStateHook(((_a = builderContent === null || builderContent === void 0 ? void 0 : builderContent.data) === null || _a === void 0 ? void 0 : _a.tsCode) || ((_b = builderContent === null || builderContent === void 0 ? void 0 : builderContent.data) === null || _b === void 0 ? void 0 : _b.jsCode) || ''), state = _k.state, code = _k.code;
|
|
703
704
|
var customCode = convertExportDefaultToReturn(code);
|
|
704
705
|
var parsed = getHooks(builderContent);
|
|
706
|
+
var parsedState = (parsed === null || parsed === void 0 ? void 0 : parsed.state) || {};
|
|
707
|
+
var mitosisState = Object.keys(parsedState).length > 0
|
|
708
|
+
? parsedState
|
|
709
|
+
: __assign(__assign({}, state), (0, helpers_1.mapBuilderContentStateToMitosisState)(((_c = builderContent.data) === null || _c === void 0 ? void 0 : _c.state) || {}));
|
|
705
710
|
var componentJson = (0, create_mitosis_component_1.createMitosisComponent)({
|
|
706
711
|
meta: __assign({ useMetadata: {
|
|
707
|
-
httpRequests: (
|
|
708
|
-
} }, (((
|
|
709
|
-
inputs: (
|
|
712
|
+
httpRequests: (_d = builderContent.data) === null || _d === void 0 ? void 0 : _d.httpRequests,
|
|
713
|
+
} }, (((_e = builderContent.data) === null || _e === void 0 ? void 0 : _e.cssCode) && { cssCode: builderContent.data.cssCode })),
|
|
714
|
+
inputs: (_g = (_f = builderContent.data) === null || _f === void 0 ? void 0 : _f.inputs) === null || _g === void 0 ? void 0 : _g.map(function (input) { return ({
|
|
710
715
|
name: input.name,
|
|
711
716
|
defaultValue: input.defaultValue,
|
|
712
717
|
}); }),
|
|
713
|
-
state:
|
|
718
|
+
state: mitosisState,
|
|
714
719
|
hooks: __assign({}, ((((_h = parsed === null || parsed === void 0 ? void 0 : parsed.hooks.onMount) === null || _h === void 0 ? void 0 : _h.code) || (customCode && { code: customCode })) && {
|
|
715
720
|
onMount: (parsed === null || parsed === void 0 ? void 0 : parsed.hooks.onMount) || { code: customCode },
|
|
716
721
|
})),
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { JSONObject } from '../../types/json';
|
|
2
1
|
import { MitosisComponent } from '../../types/mitosis-component';
|
|
3
|
-
|
|
2
|
+
import { JSONObject } from '../../types/json';
|
|
3
|
+
export declare const mapBuilderContentStateToMitosisState: (value: JSONObject) => MitosisComponent['state'];
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapBuilderContentStateToMitosisState = void 0;
|
|
4
|
+
var patterns_1 = require("../../helpers/patterns");
|
|
5
|
+
var lodash_1 = require("lodash");
|
|
6
|
+
var __DO_NOT_USE_FUNCTION_LITERAL_PREFIX = "@builder.io/mitosis/function:";
|
|
7
|
+
var __DO_NOT_USE_METHOD_LITERAL_PREFIX = "@builder.io/mitosis/method:";
|
|
8
|
+
/**
|
|
9
|
+
* Maps the Builder State format to the Mitosis State format.
|
|
10
|
+
*/
|
|
11
|
+
var mapJsonToStateValue = function (value) {
|
|
12
|
+
if (typeof value === 'string') {
|
|
13
|
+
if (value.startsWith(__DO_NOT_USE_FUNCTION_LITERAL_PREFIX)) {
|
|
14
|
+
return { type: 'function', code: value.replace(__DO_NOT_USE_FUNCTION_LITERAL_PREFIX, '') };
|
|
15
|
+
}
|
|
16
|
+
else if (value.startsWith(__DO_NOT_USE_METHOD_LITERAL_PREFIX)) {
|
|
17
|
+
var strippedValue = value.replace(__DO_NOT_USE_METHOD_LITERAL_PREFIX, '');
|
|
18
|
+
var isGet = Boolean(strippedValue.match(patterns_1.GETTER));
|
|
19
|
+
var type = isGet ? 'getter' : 'method';
|
|
20
|
+
return { type: type, code: strippedValue };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return { type: 'property', code: JSON.stringify(value) };
|
|
24
|
+
};
|
|
25
|
+
var mapBuilderContentStateToMitosisState = function (value) { return (0, lodash_1.mapValues)(value, mapJsonToStateValue); };
|
|
26
|
+
exports.mapBuilderContentStateToMitosisState = mapBuilderContentStateToMitosisState;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './builder';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./builder"), exports);
|