@builder.io/mitosis 0.0.78 → 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.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
|
@@ -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);
|
|
@@ -704,17 +704,18 @@ var builderContentPartToMitosisComponent = function (builderContent, options) {
|
|
|
704
704
|
var customCode = convertExportDefaultToReturn(code);
|
|
705
705
|
var parsed = getHooks(builderContent);
|
|
706
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) || {}));
|
|
707
710
|
var componentJson = (0, create_mitosis_component_1.createMitosisComponent)({
|
|
708
711
|
meta: __assign({ useMetadata: {
|
|
709
|
-
httpRequests: (
|
|
710
|
-
} }, (((
|
|
711
|
-
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 ({
|
|
712
715
|
name: input.name,
|
|
713
716
|
defaultValue: input.defaultValue,
|
|
714
717
|
}); }),
|
|
715
|
-
state:
|
|
716
|
-
? parsedState
|
|
717
|
-
: __assign(__assign({}, state), (0, helpers_1.mapBuilderContentStateToMitosisState)(((_g = builderContent.data) === null || _g === void 0 ? void 0 : _g.state) || {})),
|
|
718
|
+
state: mitosisState,
|
|
718
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 })) && {
|
|
719
720
|
onMount: (parsed === null || parsed === void 0 ? void 0 : parsed.hooks.onMount) || { code: customCode },
|
|
720
721
|
})),
|
|
@@ -20,7 +20,7 @@ var mapJsonToStateValue = function (value) {
|
|
|
20
20
|
return { type: type, code: strippedValue };
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
return { type: 'property', code: value };
|
|
23
|
+
return { type: 'property', code: JSON.stringify(value) };
|
|
24
24
|
};
|
|
25
25
|
var mapBuilderContentStateToMitosisState = function (value) { return (0, lodash_1.mapValues)(value, mapJsonToStateValue); };
|
|
26
26
|
exports.mapBuilderContentStateToMitosisState = mapBuilderContentStateToMitosisState;
|
|
@@ -208,7 +208,7 @@ var componentFunctionToJson = function (node, context) {
|
|
|
208
208
|
// useState(() => true)
|
|
209
209
|
if (types.isArrowFunctionExpression(value)) {
|
|
210
210
|
state[varName] = {
|
|
211
|
-
code: (0, helpers_1.
|
|
211
|
+
code: (0, helpers_1.parseCode)(value.body),
|
|
212
212
|
type: 'function',
|
|
213
213
|
};
|
|
214
214
|
}
|
|
@@ -216,7 +216,7 @@ var componentFunctionToJson = function (node, context) {
|
|
|
216
216
|
// Value as init, like:
|
|
217
217
|
// useState(true)
|
|
218
218
|
state[varName] = {
|
|
219
|
-
code: (0, helpers_1.
|
|
219
|
+
code: (0, helpers_1.parseCode)(value),
|
|
220
220
|
type: 'property',
|
|
221
221
|
};
|
|
222
222
|
}
|
|
@@ -55,10 +55,6 @@ var uncapitalize = function (str) {
|
|
|
55
55
|
};
|
|
56
56
|
exports.uncapitalize = uncapitalize;
|
|
57
57
|
var parseCode = function (node) {
|
|
58
|
-
// if the node is a string literal, make sure to wrap the return value with quotes
|
|
59
|
-
// if (types.isStringLiteral(node)) {
|
|
60
|
-
// return `"${node.value}"`;
|
|
61
|
-
// }
|
|
62
58
|
return (0, generator_1.default)(node).code;
|
|
63
59
|
};
|
|
64
60
|
exports.parseCode = parseCode;
|
|
@@ -61,14 +61,14 @@ exports.METADATA_HOOK_NAME = 'useMetadata';
|
|
|
61
61
|
* the returned nodes array
|
|
62
62
|
*/
|
|
63
63
|
var collectModuleScopeHooks = function (nodes, component, options) {
|
|
64
|
-
var hookNames = new Set((options.jsonHookNames || []).concat(exports.METADATA_HOOK_NAME));
|
|
65
64
|
return nodes.filter(function (node) {
|
|
66
65
|
var hook = getHook(node);
|
|
67
66
|
if (!hook) {
|
|
68
67
|
return true;
|
|
69
68
|
}
|
|
70
69
|
if (types.isIdentifier(hook.callee)) {
|
|
71
|
-
|
|
70
|
+
var metadataHooks = new Set((options.jsonHookNames || []).concat(exports.METADATA_HOOK_NAME));
|
|
71
|
+
if (metadataHooks.has(hook.callee.name)) {
|
|
72
72
|
try {
|
|
73
73
|
if (component.meta[hook.callee.name]) {
|
|
74
74
|
component.meta[hook.callee.name] = __assign(__assign({}, component.meta[hook.callee.name]), (0, helpers_1.parseCodeJson)(hook.arguments[0]));
|
|
@@ -144,12 +144,12 @@ var processStateObjectSlice = function (item) {
|
|
|
144
144
|
// { foo: ('string' as SomeType) }
|
|
145
145
|
if (types.isTSAsExpression(item.value)) {
|
|
146
146
|
return {
|
|
147
|
-
code: (0, helpers_1.
|
|
147
|
+
code: (0, helpers_1.parseCode)(item.value.expression),
|
|
148
148
|
type: 'property',
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
return {
|
|
152
|
-
code: (0, helpers_1.
|
|
152
|
+
code: (0, helpers_1.parseCode)(item.value),
|
|
153
153
|
type: 'property',
|
|
154
154
|
};
|
|
155
155
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseCss = void 0;
|
|
4
|
+
var parseCss = function (ast, json) {
|
|
5
|
+
var _a;
|
|
6
|
+
json.style = (_a = ast.css) === null || _a === void 0 ? void 0 : _a.content.styles;
|
|
7
|
+
};
|
|
8
|
+
exports.parseCss = parseCss;
|