@builder.io/mitosis 0.0.56-97 → 0.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/__tests__/data/blocks/content-slot-jsx.raw.jsx +4 -1
- package/dist/src/__tests__/data/blocks/form.raw.jsx +5 -5
- package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.d.ts +5 -1
- package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.jsx +3 -3
- package/dist/src/__tests__/data/default-props/default-props.raw.d.ts +7 -0
- package/dist/src/__tests__/data/default-props/default-props.raw.jsx +23 -0
- package/dist/src/__tests__/data/jsx-json.spec.d.ts +2 -0
- package/dist/src/__tests__/data/jsx-json.spec.js +10226 -0
- package/dist/src/__tests__/data/types/component-with-default-values-types.raw.d.ts +5 -0
- package/dist/src/__tests__/data/types/component-with-default-values-types.raw.jsx +9 -0
- package/dist/src/__tests__/shared.d.ts +7 -2
- package/dist/src/__tests__/shared.js +69 -9
- package/dist/src/constants/hooks.d.ts +1 -0
- package/dist/src/constants/hooks.js +1 -0
- package/dist/src/constants/method-literal-prefix.d.ts +0 -1
- package/dist/src/constants/method-literal-prefix.js +0 -3
- package/dist/src/generators/angular.d.ts +2 -2
- package/dist/src/generators/angular.js +12 -5
- package/dist/src/generators/builder.d.ts +4 -11
- package/dist/src/generators/builder.js +3 -2
- package/dist/src/generators/context/svelte.d.ts +3 -0
- package/dist/src/generators/context/svelte.js +3 -0
- package/dist/src/generators/helpers/functions.d.ts +2 -0
- package/dist/src/generators/helpers/functions.js +28 -0
- package/dist/src/generators/html.d.ts +3 -3
- package/dist/src/generators/html.js +9 -7
- package/dist/src/generators/liquid.d.ts +2 -2
- package/dist/src/generators/liquid.js +4 -4
- package/dist/src/generators/lit/generate.d.ts +2 -2
- package/dist/src/generators/lit/generate.js +14 -6
- package/dist/src/generators/marko/generate.d.ts +2 -2
- package/dist/src/generators/marko/generate.js +10 -8
- package/dist/src/generators/mitosis.d.ts +3 -4
- package/dist/src/generators/mitosis.js +3 -2
- package/dist/src/generators/qwik/component-generator.d.ts +2 -2
- package/dist/src/generators/qwik/component-generator.js +49 -55
- package/dist/src/generators/qwik/component.d.ts +0 -1
- package/dist/src/generators/qwik/component.js +22 -19
- package/dist/src/generators/qwik/directives.d.ts +1 -0
- package/dist/src/generators/qwik/directives.js +11 -14
- package/dist/src/generators/qwik/jsx.d.ts +1 -1
- package/dist/src/generators/qwik/jsx.js +9 -5
- package/dist/src/generators/qwik/src-generator.js +9 -3
- package/dist/src/generators/qwik/stable-serialize.d.ts +6 -0
- package/dist/src/generators/qwik/stable-serialize.js +51 -0
- package/dist/src/generators/react/generator.d.ts +6 -0
- package/dist/src/generators/{react.js → react/generator.js} +63 -156
- package/dist/src/generators/react/helpers.d.ts +2 -0
- package/dist/src/generators/react/helpers.js +14 -0
- package/dist/src/generators/react/index.d.ts +2 -0
- package/dist/src/generators/react/index.js +18 -0
- package/dist/src/generators/react/state.d.ts +9 -0
- package/dist/src/generators/react/state.js +107 -0
- package/dist/src/generators/react/types.d.ts +10 -0
- package/dist/src/generators/react/types.js +2 -0
- package/dist/src/generators/react-native.d.ts +2 -2
- package/dist/src/generators/solid/index.d.ts +3 -0
- package/dist/src/generators/{solid.js → solid/index.js} +80 -40
- package/dist/src/generators/solid/state.d.ts +19 -0
- package/dist/src/generators/solid/state.js +144 -0
- package/dist/src/generators/solid/types.d.ts +6 -0
- package/dist/src/generators/solid/types.js +2 -0
- package/dist/src/generators/stencil/generate.d.ts +2 -2
- package/dist/src/generators/stencil/generate.js +5 -2
- package/dist/src/generators/svelte.d.ts +6 -7
- package/dist/src/generators/svelte.js +47 -40
- package/dist/src/generators/swift-ui.d.ts +3 -5
- package/dist/src/generators/swift-ui.js +3 -2
- package/dist/src/generators/template.d.ts +2 -2
- package/dist/src/generators/template.js +3 -2
- package/dist/src/generators/vue.d.ts +5 -3
- package/dist/src/generators/vue.js +262 -107
- package/dist/src/helpers/babel-transform.d.ts +3 -1
- package/dist/src/helpers/babel-transform.js +52 -56
- package/dist/src/helpers/get-bindings.js +3 -5
- package/dist/src/helpers/get-custom-imports.js +7 -1
- package/dist/src/helpers/get-state-object-string.js +24 -21
- package/dist/src/helpers/getters-to-functions.js +1 -11
- package/dist/src/helpers/map-refs.js +25 -25
- package/dist/src/helpers/nodes/for.d.ts +4 -0
- package/dist/src/helpers/nodes/for.js +13 -0
- package/dist/src/helpers/nullable.d.ts +2 -0
- package/dist/src/helpers/nullable.js +7 -0
- package/dist/src/helpers/parse-reactive-script.js +66 -78
- package/dist/src/helpers/patterns.d.ts +2 -0
- package/dist/src/helpers/patterns.js +5 -1
- package/dist/src/helpers/render-imports.js +3 -3
- package/dist/src/helpers/replace-identifiers.d.ts +5 -0
- package/dist/src/helpers/{replace-idenifiers.js → replace-identifiers.js} +2 -1
- package/dist/src/helpers/slots.d.ts +2 -0
- package/dist/src/helpers/slots.js +15 -1
- package/dist/src/helpers/state.d.ts +0 -2
- package/dist/src/helpers/state.js +1 -10
- package/dist/src/helpers/strip-state-and-props-refs.d.ts +1 -1
- package/dist/src/helpers/strip-state-and-props-refs.js +43 -31
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +3 -1
- package/dist/src/parsers/angular.js +2 -2
- package/dist/src/parsers/builder.d.ts +4 -2
- package/dist/src/parsers/builder.js +61 -43
- package/dist/src/parsers/constants/outdated-prefixes.d.ts +10 -0
- package/dist/src/parsers/constants/outdated-prefixes.js +13 -0
- package/dist/src/parsers/context.js +2 -2
- package/dist/src/parsers/helpers/state.d.ts +3 -0
- package/dist/src/parsers/helpers/state.js +30 -0
- package/dist/src/parsers/jsx/component-types.d.ts +1 -1
- package/dist/src/parsers/jsx/component-types.js +15 -2
- package/dist/src/parsers/jsx/context.js +1 -1
- package/dist/src/parsers/jsx/element-parser.d.ts +6 -0
- package/dist/src/parsers/jsx/element-parser.js +243 -0
- package/dist/src/parsers/jsx/exports.d.ts +3 -0
- package/dist/src/parsers/jsx/exports.js +78 -0
- package/dist/src/parsers/jsx/function-parser.d.ts +7 -0
- package/dist/src/parsers/jsx/function-parser.js +291 -0
- package/dist/src/parsers/jsx/helpers.d.ts +2 -0
- package/dist/src/parsers/jsx/helpers.js +30 -1
- package/dist/src/parsers/jsx/imports.d.ts +7 -0
- package/dist/src/parsers/jsx/imports.js +65 -0
- package/dist/src/parsers/jsx/index.d.ts +1 -1
- package/dist/src/parsers/jsx/index.js +1 -2
- package/dist/src/parsers/jsx/jsx.js +29 -501
- package/dist/src/parsers/jsx/state.d.ts +2 -3
- package/dist/src/parsers/jsx/state.js +15 -22
- package/dist/src/plugins/compile-away-builder-components.js +6 -0
- package/dist/src/symbols/symbol-processor.js +3 -0
- package/dist/src/targets.d.ts +21 -28
- package/dist/src/targets.js +2 -2
- package/dist/src/types/config.d.ts +11 -1
- package/dist/src/types/mitosis-component.d.ts +13 -6
- package/dist/src/types/mitosis-component.js +11 -0
- package/dist/src/types/mitosis-context.d.ts +2 -2
- package/dist/src/types/mitosis-node.d.ts +14 -5
- package/dist/src/types/mitosis-node.js +3 -0
- package/dist/src/types/transpiler.d.ts +6 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +13 -9
- package/dist/src/__tests__/angular.test.d.ts +0 -1
- package/dist/src/__tests__/angular.test.js +0 -10
- package/dist/src/__tests__/builder.test.d.ts +0 -1
- package/dist/src/__tests__/builder.test.js +0 -235
- package/dist/src/__tests__/context.test.d.ts +0 -1
- package/dist/src/__tests__/context.test.js +0 -35
- package/dist/src/__tests__/hash-code.test.d.ts +0 -1
- package/dist/src/__tests__/hash-code.test.js +0 -11
- package/dist/src/__tests__/html.test.d.ts +0 -1
- package/dist/src/__tests__/html.test.js +0 -7
- package/dist/src/__tests__/liquid.test.d.ts +0 -1
- package/dist/src/__tests__/liquid.test.js +0 -7
- package/dist/src/__tests__/lit.test.d.ts +0 -1
- package/dist/src/__tests__/lit.test.js +0 -7
- package/dist/src/__tests__/marko.test.d.ts +0 -1
- package/dist/src/__tests__/marko.test.js +0 -14
- package/dist/src/__tests__/parse-jsx.test.d.ts +0 -1
- package/dist/src/__tests__/parse-jsx.test.js +0 -37
- package/dist/src/__tests__/qwik/convert-method-to-function.test.d.ts +0 -1
- package/dist/src/__tests__/qwik/convert-method-to-function.test.js +0 -37
- package/dist/src/__tests__/qwik/src-generator.test.d.ts +0 -1
- package/dist/src/__tests__/qwik/src-generator.test.js +0 -65
- package/dist/src/__tests__/qwik.directive.test.d.ts +0 -1
- package/dist/src/__tests__/qwik.directive.test.js +0 -108
- package/dist/src/__tests__/qwik.test.d.ts +0 -1
- package/dist/src/__tests__/qwik.test.js +0 -465
- package/dist/src/__tests__/react-native.test.d.ts +0 -1
- package/dist/src/__tests__/react-native.test.js +0 -7
- package/dist/src/__tests__/react.test.d.ts +0 -1
- package/dist/src/__tests__/react.test.js +0 -20
- package/dist/src/__tests__/solid.test.d.ts +0 -1
- package/dist/src/__tests__/solid.test.js +0 -10
- package/dist/src/__tests__/stencil.test.d.ts +0 -1
- package/dist/src/__tests__/stencil.test.js +0 -7
- package/dist/src/__tests__/styles.test.d.ts +0 -1
- package/dist/src/__tests__/styles.test.js +0 -23
- package/dist/src/__tests__/svelte.test.d.ts +0 -1
- package/dist/src/__tests__/svelte.test.js +0 -7
- package/dist/src/__tests__/vue.test.d.ts +0 -1
- package/dist/src/__tests__/vue.test.js +0 -7
- package/dist/src/__tests__/webcomponent.test.d.ts +0 -1
- package/dist/src/__tests__/webcomponent.test.js +0 -15
- package/dist/src/constants/function-literal-prefix.d.ts +0 -1
- package/dist/src/constants/function-literal-prefix.js +0 -4
- package/dist/src/generators/react.d.ts +0 -14
- package/dist/src/generators/solid.d.ts +0 -5
- package/dist/src/helpers/babel-transform.test.d.ts +0 -1
- package/dist/src/helpers/babel-transform.test.js +0 -7
- package/dist/src/helpers/generic-format.test.d.ts +0 -1
- package/dist/src/helpers/generic-format.test.js +0 -8
- package/dist/src/helpers/remove-surrounding-block.test.d.ts +0 -1
- package/dist/src/helpers/remove-surrounding-block.test.js +0 -9
- package/dist/src/helpers/render-imports.test.d.ts +0 -1
- package/dist/src/helpers/render-imports.test.js +0 -33
- package/dist/src/helpers/replace-idenifiers.d.ts +0 -1
- package/dist/src/helpers/styles/collect-css.test.d.ts +0 -1
- package/dist/src/helpers/styles/collect-css.test.js +0 -18
- package/dist/test/qwik/Accordion/high.jsx +0 -0
- package/dist/test/qwik/Accordion/low.jsx +0 -240
- package/dist/test/qwik/Accordion/med.jsx +0 -4
- package/dist/test/qwik/For/high.jsx +0 -0
- package/dist/test/qwik/For/low.jsx +0 -52
- package/dist/test/qwik/For/med.jsx +0 -4
- package/dist/test/qwik/Image/high.js +0 -9
- package/dist/test/qwik/Image/low.js +0 -0
- package/dist/test/qwik/Image/med.js +0 -155
- package/dist/test/qwik/Image.slow/high.js +0 -9
- package/dist/test/qwik/Image.slow/low.js +0 -0
- package/dist/test/qwik/Image.slow/med.js +0 -155
- package/dist/test/qwik/bindings/high.cjs +0 -0
- package/dist/test/qwik/bindings/low.cjs +0 -45
- package/dist/test/qwik/bindings/med.cjs +0 -3
- package/dist/test/qwik/button/high.js +0 -3
- package/dist/test/qwik/button/low.js +0 -25
- package/dist/test/qwik/button/med.js +0 -31
- package/dist/test/qwik/component/bindings/high.jsx +0 -0
- package/dist/test/qwik/component/bindings/low.jsx +0 -104
- package/dist/test/qwik/component/bindings/med.jsx +0 -7
- package/dist/test/qwik/component/component/inputs/high.cjsx +0 -9
- package/dist/test/qwik/component/component/inputs/low.cjsx +0 -0
- package/dist/test/qwik/component/component/inputs/med.cjsx +0 -68
- package/dist/test/qwik/for-loop.bindings/high.cjs +0 -0
- package/dist/test/qwik/for-loop.bindings/low.cjs +0 -56
- package/dist/test/qwik/for-loop.bindings/med.cjs +0 -5
- package/dist/test/qwik/hello_world/stylesheet/high.jsx +0 -0
- package/dist/test/qwik/hello_world/stylesheet/low.jsx +0 -26
- package/dist/test/qwik/hello_world/stylesheet/med.jsx +0 -4
- package/dist/test/qwik/mount/high.cjs +0 -0
- package/dist/test/qwik/mount/low.cjs +0 -47
- package/dist/test/qwik/mount/med.cjs +0 -3
- package/dist/test/qwik/page-with-symbol/high.js +0 -0
- package/dist/test/qwik/page-with-symbol/low.js +0 -33
- package/dist/test/qwik/page-with-symbol/med.js +0 -4
- package/dist/test/qwik/show-hide/high.jsx +0 -9
- package/dist/test/qwik/show-hide/low.jsx +0 -0
- package/dist/test/qwik/show-hide/med.jsx +0 -181
- package/dist/test/qwik/svg/high.js +0 -0
- package/dist/test/qwik/svg/low.js +0 -30
- package/dist/test/qwik/svg/med.js +0 -4
- package/dist/test/qwik/todo/Todo.cjs/high.cjs +0 -19
- package/dist/test/qwik/todo/Todo.cjs/low.cjs +0 -0
- package/dist/test/qwik/todo/Todo.cjs/med.cjs +0 -51
- package/dist/test/qwik/todo/Todo.js/high.js +0 -19
- package/dist/test/qwik/todo/Todo.js/low.js +0 -0
- package/dist/test/qwik/todo/Todo.js/med.js +0 -47
- package/dist/test/qwik/todo/Todo.tsx/high.tsx +0 -19
- package/dist/test/qwik/todo/Todo.tsx/low.tsx +0 -0
- package/dist/test/qwik/todo/Todo.tsx/med.tsx +0 -43
- package/dist/test/qwik/todos/Todo.tsx/high.tsx +0 -7
- package/dist/test/qwik/todos/Todo.tsx/low.tsx +0 -32
- package/dist/test/qwik/todos/Todo.tsx/med.tsx +0 -4
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var DEFAULT_VALUES = {
|
|
4
|
+
name: 'Sami',
|
|
5
|
+
};
|
|
6
|
+
function ComponentWithTypes(props) {
|
|
7
|
+
return <div> Hello {props.name || DEFAULT_VALUES.name}</div>;
|
|
8
|
+
}
|
|
9
|
+
exports.default = ComponentWithTypes;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TranspilerGenerator } from '../types/transpiler';
|
|
2
2
|
import { Target } from '../types/config';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const runTestsForJsx: () => void;
|
|
4
|
+
export declare const runTestsForTarget: <X>({ target, generator, options, }: {
|
|
5
|
+
target: Target;
|
|
6
|
+
generator: TranspilerGenerator<X, string>;
|
|
7
|
+
options: X;
|
|
8
|
+
}) => void;
|
|
@@ -1,6 +1,17 @@
|
|
|
1
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
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runTestsForTarget = void 0;
|
|
14
|
+
exports.runTestsForTarget = exports.runTestsForJsx = void 0;
|
|
4
15
|
var jsx_1 = require("../parsers/jsx");
|
|
5
16
|
var basicForShow = require('./data/basic-for-show.raw');
|
|
6
17
|
var basicOnMountUpdate = require('./data/basic-onMount-update.raw');
|
|
@@ -24,6 +35,7 @@ var propsType = require('./data/types/component-props-type.raw');
|
|
|
24
35
|
var propsInterface = require('./data/types/component-props-interface.raw');
|
|
25
36
|
var preserveTyping = require('./data/types/preserve-typing.raw');
|
|
26
37
|
var typeDependency = require('./data/types/type-dependency.raw');
|
|
38
|
+
var defaultProps = require('./data/default-props/default-props.raw');
|
|
27
39
|
var classRaw = require('./data/styles/class.raw');
|
|
28
40
|
var className = require('./data/styles/className.raw');
|
|
29
41
|
var classAndClassName = require('./data/styles/class-and-className.raw');
|
|
@@ -59,6 +71,7 @@ var submitButtonBlock = require('./data/blocks/submit-button.raw');
|
|
|
59
71
|
var text = require('./data/blocks/text.raw');
|
|
60
72
|
var textarea = require('./data/blocks/textarea.raw');
|
|
61
73
|
var video = require('./data/blocks/video.raw');
|
|
74
|
+
var builderRenderContent = require('./data/blocks/builder-render-content.raw');
|
|
62
75
|
var path = 'test-path';
|
|
63
76
|
var BASIC_TESTS = {
|
|
64
77
|
Basic: basic,
|
|
@@ -88,8 +101,11 @@ var BASIC_TESTS = {
|
|
|
88
101
|
onMount: onMount,
|
|
89
102
|
propsType: propsType,
|
|
90
103
|
propsInterface: propsInterface,
|
|
104
|
+
defaultProps: defaultProps,
|
|
91
105
|
preserveTyping: preserveTyping,
|
|
92
106
|
typeDependency: typeDependency,
|
|
107
|
+
defaultValsWithTypes: require('./data/types/component-with-default-values-types.raw'),
|
|
108
|
+
'import types': builderRenderContent,
|
|
93
109
|
subComponent: subComponent,
|
|
94
110
|
nestedStyles: nestedStyles,
|
|
95
111
|
propsDestructure: propsDestructure,
|
|
@@ -140,6 +156,17 @@ var ADVANCED_REF = {
|
|
|
140
156
|
var ON_UPDATE_RETURN = {
|
|
141
157
|
basicOnUpdateReturn: require('./data/basic-onUpdate-return.raw'),
|
|
142
158
|
};
|
|
159
|
+
var JSX_TESTS = [
|
|
160
|
+
BASIC_TESTS,
|
|
161
|
+
SLOTS_TESTS,
|
|
162
|
+
SHOW_TESTS,
|
|
163
|
+
FORWARD_REF_TESTS,
|
|
164
|
+
MULTI_ON_UPDATE_TESTS,
|
|
165
|
+
FORM_BLOCK_TESTS,
|
|
166
|
+
ADVANCED_REF,
|
|
167
|
+
ON_UPDATE_RETURN,
|
|
168
|
+
FOR_SHOW_TESTS,
|
|
169
|
+
];
|
|
143
170
|
var TESTS_FOR_TARGET = {
|
|
144
171
|
react: [
|
|
145
172
|
BASIC_TESTS,
|
|
@@ -281,22 +308,55 @@ var TESTS_FOR_TARGET = {
|
|
|
281
308
|
FOR_SHOW_TESTS,
|
|
282
309
|
],
|
|
283
310
|
};
|
|
284
|
-
var
|
|
311
|
+
var runTestsForJsx = function () {
|
|
312
|
+
test('Remove Internal mitosis package', function () {
|
|
313
|
+
var component = (0, jsx_1.parseJsx)(basicMitosis, {
|
|
314
|
+
compileAwayPackages: ['@dummy/custom-mitosis'],
|
|
315
|
+
});
|
|
316
|
+
expect(component).toMatchSnapshot();
|
|
317
|
+
});
|
|
318
|
+
JSX_TESTS.forEach(function (tests) {
|
|
319
|
+
Object.keys(tests).forEach(function (key) {
|
|
320
|
+
test(key, function () {
|
|
321
|
+
var component = (0, jsx_1.parseJsx)(tests[key]);
|
|
322
|
+
expect(component).toMatchSnapshot();
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
};
|
|
327
|
+
exports.runTestsForJsx = runTestsForJsx;
|
|
328
|
+
var runTestsForTarget = function (_a) {
|
|
329
|
+
var target = _a.target, generator = _a.generator, options = _a.options;
|
|
285
330
|
var testsArray = TESTS_FOR_TARGET[target];
|
|
286
331
|
test('Remove Internal mitosis package', function () {
|
|
287
332
|
var component = (0, jsx_1.parseJsx)(basicMitosis, {
|
|
288
333
|
compileAwayPackages: ['@dummy/custom-mitosis'],
|
|
289
334
|
});
|
|
290
|
-
var output = generator({ component: component, path: path });
|
|
335
|
+
var output = generator(options)({ component: component, path: path });
|
|
291
336
|
expect(output).toMatchSnapshot();
|
|
292
337
|
});
|
|
338
|
+
var configurations = [
|
|
339
|
+
{ options: __assign(__assign({}, options), { typescript: false }), testName: 'Javascript Test' },
|
|
340
|
+
{ options: __assign(__assign({}, options), { typescript: true }), testName: 'Typescript Test' },
|
|
341
|
+
];
|
|
293
342
|
if (testsArray) {
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
343
|
+
configurations.forEach(function (_a) {
|
|
344
|
+
var options = _a.options, testName = _a.testName;
|
|
345
|
+
describe(testName, function () {
|
|
346
|
+
testsArray.forEach(function (tests) {
|
|
347
|
+
Object.keys(tests).forEach(function (key) {
|
|
348
|
+
test(key, function () {
|
|
349
|
+
try {
|
|
350
|
+
var component = (0, jsx_1.parseJsx)(tests[key]);
|
|
351
|
+
var output = generator(options)({ component: component, path: path });
|
|
352
|
+
expect(output).toMatchSnapshot();
|
|
353
|
+
}
|
|
354
|
+
catch (error) {
|
|
355
|
+
console.log('failed to parse', error);
|
|
356
|
+
throw error;
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
});
|
|
300
360
|
});
|
|
301
361
|
});
|
|
302
362
|
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const methodLiteralPrefix = "@builder.io/mitosis/method:";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MitosisNode } from '../types/mitosis-node';
|
|
2
|
-
import { BaseTranspilerOptions,
|
|
2
|
+
import { BaseTranspilerOptions, TranspilerGenerator } from '../types/transpiler';
|
|
3
3
|
export interface ToAngularOptions extends BaseTranspilerOptions {
|
|
4
4
|
standalone?: boolean;
|
|
5
5
|
}
|
|
@@ -10,5 +10,5 @@ interface AngularBlockOptions {
|
|
|
10
10
|
domRefs?: string[];
|
|
11
11
|
}
|
|
12
12
|
export declare const blockToAngular: (json: MitosisNode, options?: ToAngularOptions, blockOptions?: AngularBlockOptions) => string;
|
|
13
|
-
export declare const componentToAngular:
|
|
13
|
+
export declare const componentToAngular: TranspilerGenerator<ToAngularOptions>;
|
|
14
14
|
export {};
|
|
@@ -18,6 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.componentToAngular = exports.blockToAngular = void 0;
|
|
20
20
|
var dedent_1 = __importDefault(require("dedent"));
|
|
21
|
+
var json5_1 = __importDefault(require("json5"));
|
|
21
22
|
var standalone_1 = require("prettier/standalone");
|
|
22
23
|
var collect_css_1 = require("../helpers/styles/collect-css");
|
|
23
24
|
var fast_clone_1 = require("../helpers/fast-clone");
|
|
@@ -27,6 +28,7 @@ var map_refs_1 = require("../helpers/map-refs");
|
|
|
27
28
|
var render_imports_1 = require("../helpers/render-imports");
|
|
28
29
|
var strip_state_and_props_refs_1 = require("../helpers/strip-state-and-props-refs");
|
|
29
30
|
var jsx_1 = require("../parsers/jsx");
|
|
31
|
+
var mitosis_node_1 = require("../types/mitosis-node");
|
|
30
32
|
var plugins_1 = require("../modules/plugins");
|
|
31
33
|
var is_children_1 = __importDefault(require("../helpers/is-children"));
|
|
32
34
|
var get_props_1 = require("../helpers/get-props");
|
|
@@ -96,12 +98,13 @@ var blockToAngular = function (json, options, blockOptions) {
|
|
|
96
98
|
}
|
|
97
99
|
var str = '';
|
|
98
100
|
var needsToRenderSlots = [];
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
+
if ((0, mitosis_node_1.checkIsForNode)(json)) {
|
|
102
|
+
var indexName = json.scope.indexName;
|
|
103
|
+
str += "<ng-container *ngFor=\"let ".concat(json.scope.forName, " of ").concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_e = json.bindings.each) === null || _e === void 0 ? void 0 : _e.code, {
|
|
101
104
|
contextVars: contextVars,
|
|
102
105
|
outputVars: outputVars,
|
|
103
106
|
domRefs: domRefs,
|
|
104
|
-
}), "\">");
|
|
107
|
+
})).concat(indexName ? "; let ".concat(indexName, " = index") : '', "\">");
|
|
105
108
|
str += json.children.map(function (item) { return (0, exports.blockToAngular)(item, options, blockOptions); }).join('\n');
|
|
106
109
|
str += "</ng-container>";
|
|
107
110
|
}
|
|
@@ -292,7 +295,7 @@ var componentToAngular = function (options) {
|
|
|
292
295
|
});
|
|
293
296
|
},
|
|
294
297
|
});
|
|
295
|
-
var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: `\n ", "\n `,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "], ["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: \\`\n ", "\n \\`,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "])), outputs.length ? 'Output, EventEmitter, \n' : '', ((_g = options === null || options === void 0 ? void 0 : options.experimental) === null || _g === void 0 ? void 0 : _g.inject) ? 'Inject, forwardRef,' : '', domRefs.size ? ', ViewChild, ElementRef' : '', props.size ? ', Input' : '', options.standalone ? "import { CommonModule } from '@angular/common';" : '', json.types ? json.types.join('\n') : '', (0, render_imports_1.renderPreComponent)({
|
|
298
|
+
var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: `\n ", "\n `,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "], ["\n import { ", " ", " Component ", "", " } from '@angular/core';\n ", "\n\n ", "\n ", "\n ", "\n\n @Component({\n ", "\n selector: '", "',\n template: \\`\n ", "\n \\`,\n ", "\n })\n export default class ", " {\n ", "\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n ", "\n ", "\n\n ", "\n\n ", "\n\n }\n "])), outputs.length ? 'Output, EventEmitter, \n' : '', ((_g = options === null || options === void 0 ? void 0 : options.experimental) === null || _g === void 0 ? void 0 : _g.inject) ? 'Inject, forwardRef,' : '', domRefs.size ? ', ViewChild, ElementRef' : '', props.size ? ', Input' : '', options.standalone ? "import { CommonModule } from '@angular/common';" : '', json.types ? json.types.join('\n') : '', !json.defaultProps ? '' : "const defaultProps = ".concat(json5_1.default.stringify(json.defaultProps), "\n"), (0, render_imports_1.renderPreComponent)({
|
|
296
299
|
component: json,
|
|
297
300
|
target: 'angular',
|
|
298
301
|
excludeMitosisComponents: !options.standalone,
|
|
@@ -305,7 +308,11 @@ var componentToAngular = function (options) {
|
|
|
305
308
|
.filter(function (item) { return !(0, slots_1.isSlotProperty)(item) && item !== 'children'; })
|
|
306
309
|
.map(function (item) {
|
|
307
310
|
var propType = propsTypeRef ? "".concat(propsTypeRef, "[\"").concat(item, "\"]") : 'any';
|
|
308
|
-
|
|
311
|
+
var propDeclaration = "@Input() ".concat(item, ": ").concat(propType);
|
|
312
|
+
if (json.defaultProps && json.defaultProps.hasOwnProperty(item)) {
|
|
313
|
+
propDeclaration += " = defaultProps[\"".concat(item, "\"]");
|
|
314
|
+
}
|
|
315
|
+
return propDeclaration;
|
|
309
316
|
})
|
|
310
317
|
.join('\n'), outputs.join('\n'), Array.from(domRefs)
|
|
311
318
|
.map(function (refName) { return "@ViewChild('".concat(refName, "') ").concat(refName, ": ElementRef"); })
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import { MitosisNode } from '../types/mitosis-node';
|
|
2
|
-
import { BuilderElement } from '@builder.io/sdk';
|
|
3
|
-
import { TranspilerArgs } from '../types/transpiler';
|
|
4
|
-
export interface ToBuilderOptions {
|
|
2
|
+
import { BuilderContent, BuilderElement } from '@builder.io/sdk';
|
|
3
|
+
import { BaseTranspilerOptions, TranspilerArgs } from '../types/transpiler';
|
|
4
|
+
export interface ToBuilderOptions extends BaseTranspilerOptions {
|
|
5
5
|
includeIds?: boolean;
|
|
6
6
|
}
|
|
7
7
|
declare type InternalOptions = {
|
|
8
8
|
skipMapper?: boolean;
|
|
9
9
|
};
|
|
10
10
|
export declare const blockToBuilder: (json: MitosisNode, options?: ToBuilderOptions, _internalOptions?: InternalOptions) => BuilderElement;
|
|
11
|
-
export declare const componentToBuilder: (options?: ToBuilderOptions) => ({ component }: TranspilerArgs) =>
|
|
12
|
-
data: {
|
|
13
|
-
httpRequests: import("../types/json")._JSON;
|
|
14
|
-
jsCode: string;
|
|
15
|
-
tsCode: string;
|
|
16
|
-
blocks: BuilderElement[];
|
|
17
|
-
};
|
|
18
|
-
};
|
|
11
|
+
export declare const componentToBuilder: (options?: ToBuilderOptions) => ({ component }: TranspilerArgs) => BuilderContent;
|
|
19
12
|
export {};
|
|
@@ -81,15 +81,16 @@ var componentMappers = __assign(__assign({}, (!builder_1.symbolBlocksAsChildren
|
|
|
81
81
|
block.component.options.columns = columns;
|
|
82
82
|
block.children = [];
|
|
83
83
|
return block;
|
|
84
|
-
}, For: function (
|
|
84
|
+
}, For: function (_node, options) {
|
|
85
85
|
var _a;
|
|
86
|
+
var node = _node;
|
|
86
87
|
return el({
|
|
87
88
|
component: {
|
|
88
89
|
name: 'Core:Fragment',
|
|
89
90
|
},
|
|
90
91
|
repeat: {
|
|
91
92
|
collection: (_a = node.bindings.each) === null || _a === void 0 ? void 0 : _a.code,
|
|
92
|
-
itemName: node.
|
|
93
|
+
itemName: node.scope.forName,
|
|
93
94
|
},
|
|
94
95
|
children: node.children
|
|
95
96
|
.filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
|
|
@@ -2,6 +2,9 @@ import { MitosisContext } from '../../types/mitosis-context';
|
|
|
2
2
|
import { BaseTranspilerOptions } from '../../types/transpiler';
|
|
3
3
|
interface ContextToSvelteOptions extends Pick<BaseTranspilerOptions, 'prettier'> {
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* TO-DO: support types
|
|
7
|
+
*/
|
|
5
8
|
export declare const contextToSvelte: (options?: ContextToSvelteOptions) => ({ context }: {
|
|
6
9
|
context: MitosisContext;
|
|
7
10
|
}) => string;
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.contextToSvelte = void 0;
|
|
4
4
|
var standalone_1 = require("prettier/standalone");
|
|
5
5
|
var get_state_object_string_1 = require("../../helpers/get-state-object-string");
|
|
6
|
+
/**
|
|
7
|
+
* TO-DO: support types
|
|
8
|
+
*/
|
|
6
9
|
var contextToSvelte = function (options) {
|
|
7
10
|
if (options === void 0) { options = {}; }
|
|
8
11
|
return function (_a) {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FUNCTION_HACK_PLUGIN = void 0;
|
|
4
|
+
var FUNCTION_HACK_PLUGIN = function () { return ({
|
|
5
|
+
json: {
|
|
6
|
+
pre: function (json) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
for (var key in json.state) {
|
|
9
|
+
var value = (_a = json.state[key]) === null || _a === void 0 ? void 0 : _a.code;
|
|
10
|
+
var type = (_b = json.state[key]) === null || _b === void 0 ? void 0 : _b.type;
|
|
11
|
+
if (typeof value === 'string' && type === 'method') {
|
|
12
|
+
var newValue = "function ".concat(value);
|
|
13
|
+
json.state[key] = {
|
|
14
|
+
code: newValue,
|
|
15
|
+
type: 'method',
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
else if (typeof value === 'string' && type === 'function') {
|
|
19
|
+
json.state[key] = {
|
|
20
|
+
code: value,
|
|
21
|
+
type: 'method',
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
}); };
|
|
28
|
+
exports.FUNCTION_HACK_PLUGIN = FUNCTION_HACK_PLUGIN;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BaseTranspilerOptions,
|
|
1
|
+
import { BaseTranspilerOptions, TranspilerGenerator } from '../types/transpiler';
|
|
2
2
|
export interface ToHtmlOptions extends BaseTranspilerOptions {
|
|
3
3
|
format?: 'class' | 'script';
|
|
4
4
|
prefix?: string;
|
|
5
5
|
}
|
|
6
|
-
export declare const componentToHtml:
|
|
7
|
-
export declare const componentToCustomElement:
|
|
6
|
+
export declare const componentToHtml: TranspilerGenerator<ToHtmlOptions>;
|
|
7
|
+
export declare const componentToCustomElement: TranspilerGenerator<ToHtmlOptions>;
|
|
@@ -47,12 +47,14 @@ var get_props_1 = require("../helpers/get-props");
|
|
|
47
47
|
var get_props_ref_1 = require("../helpers/get-props-ref");
|
|
48
48
|
var get_prop_functions_1 = require("../helpers/get-prop-functions");
|
|
49
49
|
var jsx_1 = require("../parsers/jsx");
|
|
50
|
+
var mitosis_node_1 = require("../types/mitosis-node");
|
|
50
51
|
var strip_state_and_props_refs_1 = require("../helpers/strip-state-and-props-refs");
|
|
51
52
|
var plugins_1 = require("../modules/plugins");
|
|
52
53
|
var is_children_1 = __importDefault(require("../helpers/is-children"));
|
|
53
54
|
var strip_meta_properties_1 = require("../helpers/strip-meta-properties");
|
|
54
55
|
var remove_surrounding_block_1 = require("../helpers/remove-surrounding-block");
|
|
55
56
|
var render_imports_1 = require("../helpers/render-imports");
|
|
57
|
+
var for_1 = require("../helpers/nodes/for");
|
|
56
58
|
var isAttribute = function (key) {
|
|
57
59
|
return /-/.test(key);
|
|
58
60
|
};
|
|
@@ -189,7 +191,7 @@ var addOnChangeJs = function (id, options, code) {
|
|
|
189
191
|
};
|
|
190
192
|
// TODO: spread support
|
|
191
193
|
var blockToHtml = function (json, options, blockOptions) {
|
|
192
|
-
var _a, _b, _c, _d, _e, _f
|
|
194
|
+
var _a, _b, _c, _d, _e, _f;
|
|
193
195
|
if (blockOptions === void 0) { blockOptions = {}; }
|
|
194
196
|
var ComponentName = blockOptions.ComponentName;
|
|
195
197
|
var scopeVars = (blockOptions === null || blockOptions === void 0 ? void 0 : blockOptions.scopeVars) || [];
|
|
@@ -221,14 +223,14 @@ var blockToHtml = function (json, options, blockOptions) {
|
|
|
221
223
|
return "<template data-el=\"".concat(elId, "\"><!-- ").concat((_b = json.bindings._text) === null || _b === void 0 ? void 0 : _b.code, " --></template>");
|
|
222
224
|
}
|
|
223
225
|
var str = '';
|
|
224
|
-
if (
|
|
225
|
-
var forArguments = (
|
|
226
|
+
if ((0, mitosis_node_1.checkIsForNode)(json)) {
|
|
227
|
+
var forArguments = (0, for_1.getForArguments)(json);
|
|
226
228
|
var localScopeVars_1 = __spreadArray(__spreadArray([], scopeVars, true), forArguments, true);
|
|
227
229
|
var argsStr = forArguments.map(function (arg) { return "\"".concat(arg, "\""); }).join(',');
|
|
228
230
|
addOnChangeJs(elId, options,
|
|
229
231
|
// TODO: be smarter about rendering, deleting old items and adding new ones by
|
|
230
232
|
// querying dom potentially
|
|
231
|
-
"\n let array = ".concat((
|
|
233
|
+
"\n let array = ".concat((_c = json.bindings.each) === null || _c === void 0 ? void 0 : _c.code, ";\n ").concat(options.format === 'class' ? 'this.' : '', "renderLoop(el, array, ").concat(argsStr, ");\n "));
|
|
232
234
|
// TODO: decide on how to handle this...
|
|
233
235
|
str += "\n <template data-el=\"".concat(elId, "\">");
|
|
234
236
|
if (json.children) {
|
|
@@ -241,7 +243,7 @@ var blockToHtml = function (json, options, blockOptions) {
|
|
|
241
243
|
str += '</template>';
|
|
242
244
|
}
|
|
243
245
|
else if (json.name === 'Show') {
|
|
244
|
-
var whenCondition = ((
|
|
246
|
+
var whenCondition = ((_d = json.bindings.when) === null || _d === void 0 ? void 0 : _d.code).replace(/;$/, '');
|
|
245
247
|
addOnChangeJs(elId, options, "\n ".concat(addScopeVars(scopeVars, whenCondition, function (scopeVar) {
|
|
246
248
|
return "const ".concat(scopeVar, " = ").concat(options.format === 'class' ? 'this.' : '', "getScope(el, \"").concat(scopeVar, "\");");
|
|
247
249
|
}), "\n const whenCondition = ").concat(whenCondition, ";\n if (whenCondition) {\n ").concat(options.format === 'class' ? 'this.' : '', "showContent(el)\n }\n "));
|
|
@@ -281,8 +283,8 @@ var blockToHtml = function (json, options, blockOptions) {
|
|
|
281
283
|
if (key === '_spread' || key === 'css') {
|
|
282
284
|
continue;
|
|
283
285
|
}
|
|
284
|
-
var value = (
|
|
285
|
-
var cusArg = ((
|
|
286
|
+
var value = (_e = json.bindings[key]) === null || _e === void 0 ? void 0 : _e.code;
|
|
287
|
+
var cusArg = ((_f = json.bindings[key]) === null || _f === void 0 ? void 0 : _f.arguments) || ['event'];
|
|
286
288
|
// TODO: proper babel transform to replace. Util for this
|
|
287
289
|
var useValue = value;
|
|
288
290
|
if (key.startsWith('on')) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTranspilerOptions,
|
|
1
|
+
import { BaseTranspilerOptions, TranspilerGenerator } from '../types/transpiler';
|
|
2
2
|
export interface ToLiquidOptions extends BaseTranspilerOptions {
|
|
3
3
|
reactive?: boolean;
|
|
4
4
|
}
|
|
@@ -8,4 +8,4 @@ export interface ToLiquidOptions extends BaseTranspilerOptions {
|
|
|
8
8
|
* Shopify will reject our PUT to update the template
|
|
9
9
|
*/
|
|
10
10
|
export declare const isValidLiquidBinding: (str?: string) => boolean;
|
|
11
|
-
export declare const componentToLiquid:
|
|
11
|
+
export declare const componentToLiquid: TranspilerGenerator<ToLiquidOptions>;
|
|
@@ -6,6 +6,7 @@ var collect_css_1 = require("../helpers/styles/collect-css");
|
|
|
6
6
|
var fast_clone_1 = require("../helpers/fast-clone");
|
|
7
7
|
var strip_state_and_props_refs_1 = require("../helpers/strip-state-and-props-refs");
|
|
8
8
|
var jsx_1 = require("../parsers/jsx");
|
|
9
|
+
var mitosis_node_1 = require("../types/mitosis-node");
|
|
9
10
|
var plugins_1 = require("../modules/plugins");
|
|
10
11
|
var strip_meta_properties_1 = require("../helpers/strip-meta-properties");
|
|
11
12
|
var get_state_object_string_1 = require("../helpers/get-state-object-string");
|
|
@@ -49,12 +50,11 @@ var blockToLiquid = function (json, options) {
|
|
|
49
50
|
return "{{".concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)(json.bindings._text.code), "}}");
|
|
50
51
|
}
|
|
51
52
|
var str = '';
|
|
52
|
-
if (
|
|
53
|
-
if (!((0, exports.isValidLiquidBinding)((_b = json.bindings.each) === null || _b === void 0 ? void 0 : _b.code) &&
|
|
54
|
-
(0, exports.isValidLiquidBinding)(json.properties._forName))) {
|
|
53
|
+
if ((0, mitosis_node_1.checkIsForNode)(json)) {
|
|
54
|
+
if (!((0, exports.isValidLiquidBinding)((_b = json.bindings.each) === null || _b === void 0 ? void 0 : _b.code) && (0, exports.isValidLiquidBinding)(json.scope.forName))) {
|
|
55
55
|
return str;
|
|
56
56
|
}
|
|
57
|
-
str += "{% for ".concat(json.
|
|
57
|
+
str += "{% for ".concat(json.scope.forName, " in ").concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_c = json.bindings.each) === null || _c === void 0 ? void 0 : _c.code), " %}");
|
|
58
58
|
if (json.children) {
|
|
59
59
|
str += json.children.map(function (item) { return blockToLiquid(item, options); }).join('\n');
|
|
60
60
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseTranspilerOptions,
|
|
1
|
+
import { BaseTranspilerOptions, TranspilerGenerator } from '../../types/transpiler';
|
|
2
2
|
export interface ToLitOptions extends BaseTranspilerOptions {
|
|
3
3
|
useShadowDom?: boolean;
|
|
4
4
|
}
|
|
5
|
-
export declare const componentToLit:
|
|
5
|
+
export declare const componentToLit: TranspilerGenerator<ToLitOptions>;
|
|
@@ -13,6 +13,7 @@ var standalone_1 = require("prettier/standalone");
|
|
|
13
13
|
var get_state_object_string_1 = require("../../helpers/get-state-object-string");
|
|
14
14
|
var render_imports_1 = require("../../helpers/render-imports");
|
|
15
15
|
var jsx_1 = require("../../parsers/jsx");
|
|
16
|
+
var mitosis_node_1 = require("../../types/mitosis-node");
|
|
16
17
|
var plugins_1 = require("../../modules/plugins");
|
|
17
18
|
var fast_clone_1 = require("../../helpers/fast-clone");
|
|
18
19
|
var strip_meta_properties_1 = require("../../helpers/strip-meta-properties");
|
|
@@ -48,8 +49,8 @@ var blockToLit = function (json, options) {
|
|
|
48
49
|
if ((_a = json.bindings._text) === null || _a === void 0 ? void 0 : _a.code) {
|
|
49
50
|
return "${".concat(processBinding((_b = json.bindings) === null || _b === void 0 ? void 0 : _b._text.code), "}");
|
|
50
51
|
}
|
|
51
|
-
if (
|
|
52
|
-
return "${".concat(processBinding((_c = json.bindings.each) === null || _c === void 0 ? void 0 : _c.code), "?.map((").concat(json.
|
|
52
|
+
if ((0, mitosis_node_1.checkIsForNode)(json)) {
|
|
53
|
+
return "${".concat(processBinding((_c = json.bindings.each) === null || _c === void 0 ? void 0 : _c.code), "?.map((").concat(json.scope.forName, ", index) => (\n html`").concat(json.children
|
|
53
54
|
.filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
|
|
54
55
|
.map(function (item) { return blockToLit(item, options); })
|
|
55
56
|
.join('\n'), "`\n ))}");
|
|
@@ -90,9 +91,16 @@ var blockToLit = function (json, options) {
|
|
|
90
91
|
str += " ".concat(useKey, "=${").concat(cusArgs.join(','), " => ").concat(processBinding(code), "} ");
|
|
91
92
|
}
|
|
92
93
|
else {
|
|
93
|
-
|
|
94
|
-
//
|
|
95
|
-
|
|
94
|
+
var value = processBinding(code);
|
|
95
|
+
// If they key includes a '-' it's an attribute, not a property
|
|
96
|
+
if (key.includes('-')) {
|
|
97
|
+
str += " ".concat(key, "=${").concat(value, "} ");
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// TODO: handle boolean attributes too by matching list of html boolean attributes
|
|
101
|
+
// https://lit.dev/docs/templates/expressions/#boolean-attribute-expressions
|
|
102
|
+
str += " .".concat(key, "=${").concat(value, "} ");
|
|
103
|
+
}
|
|
96
104
|
}
|
|
97
105
|
}
|
|
98
106
|
if (jsx_1.selfClosingTags.has(json.name)) {
|
|
@@ -175,7 +183,7 @@ var componentToLit = function (options) {
|
|
|
175
183
|
html = html.replace(/\n{3,}/g, '\n\n');
|
|
176
184
|
}
|
|
177
185
|
}
|
|
178
|
-
var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n import { LitElement, html, css } from 'lit';\n import { customElement, property, state, query } from 'lit/decorators.js';\n\n ", "\n ", "\n\n @customElement('", "')\n export default class ", " extends LitElement {\n ", "\n\n ", "\n\n ", "\n \n \n ", "\n\n ", "\n ", "\n \n ", "\n ", "\n ", "\n \n render() {\n return html`\n ", "\n
|
|
186
|
+
var str = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n import { LitElement, html, css } from 'lit';\n import { customElement, property, state, query } from 'lit/decorators.js';\n\n ", "\n ", "\n\n @customElement('", "')\n export default class ", " extends LitElement {\n ", "\n\n ", "\n\n ", "\n \n \n ", "\n\n ", "\n ", "\n \n ", "\n ", "\n ", "\n \n render() {\n return html`\n ", "\n ", "\n `\n }\n }\n "], ["\n ", "\n import { LitElement, html, css } from 'lit';\n import { customElement, property, state, query } from 'lit/decorators.js';\n\n ", "\n ", "\n\n @customElement('", "')\n export default class ", " extends LitElement {\n ", "\n\n ", "\n\n ", "\n \n \n ", "\n\n ", "\n ", "\n \n ", "\n ", "\n ", "\n \n render() {\n return html\\`\n ", "\n ", "\n \\`\n }\n }\n "])), (0, render_imports_1.renderPreComponent)({ component: json, target: 'lit' }), json.types ? json.types.join('\n') : '', hasSpread
|
|
179
187
|
? "\n const spread = (properties) =>\n directive((part) => {\n for (const property in properties) {\n const value = properties[attr];\n part.element[property] = value;\n }\n });\n "
|
|
180
188
|
: '', ((_b = json.meta.useMetadata) === null || _b === void 0 ? void 0 : _b.tagName) || getCustomTagName(json.name, options), json.name, options.useShadowDom
|
|
181
189
|
? ''
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BaseTranspilerOptions,
|
|
1
|
+
import { BaseTranspilerOptions, TranspilerGenerator } from '../../types/transpiler';
|
|
2
2
|
export interface ToMarkoOptions extends BaseTranspilerOptions {
|
|
3
3
|
}
|
|
4
|
-
export declare const componentToMarko:
|
|
4
|
+
export declare const componentToMarko: TranspilerGenerator<ToMarkoOptions>;
|
|
5
5
|
/**
|
|
6
6
|
* Convert marko expressions to valid html
|
|
7
7
|
*
|
|
@@ -24,6 +24,7 @@ var standalone_1 = require("prettier/standalone");
|
|
|
24
24
|
var get_state_object_string_1 = require("../../helpers/get-state-object-string");
|
|
25
25
|
var render_imports_1 = require("../../helpers/render-imports");
|
|
26
26
|
var jsx_1 = require("../../parsers/jsx");
|
|
27
|
+
var mitosis_node_1 = require("../../types/mitosis-node");
|
|
27
28
|
var plugins_1 = require("../../modules/plugins");
|
|
28
29
|
var fast_clone_1 = require("../../helpers/fast-clone");
|
|
29
30
|
var strip_meta_properties_1 = require("../../helpers/strip-meta-properties");
|
|
@@ -37,6 +38,7 @@ var has_props_1 = require("../../helpers/has-props");
|
|
|
37
38
|
var get_refs_1 = require("../../helpers/get-refs");
|
|
38
39
|
var lodash_1 = require("lodash");
|
|
39
40
|
var hash_sum_1 = __importDefault(require("hash-sum"));
|
|
41
|
+
var for_1 = require("../../helpers/nodes/for");
|
|
40
42
|
// Having issues with this, so off for now
|
|
41
43
|
var USE_MARKO_PRETTIER = false;
|
|
42
44
|
/**
|
|
@@ -46,7 +48,7 @@ function getStatePropertyNames(json) {
|
|
|
46
48
|
return Object.keys(json.state).filter(function (key) { var _a; return ((_a = json.state[key]) === null || _a === void 0 ? void 0 : _a.type) === 'property'; });
|
|
47
49
|
}
|
|
48
50
|
var blockToMarko = function (json, options) {
|
|
49
|
-
var _a, _b, _c, _d, _e, _f
|
|
51
|
+
var _a, _b, _c, _d, _e, _f;
|
|
50
52
|
if (json.properties._text) {
|
|
51
53
|
return json.properties._text;
|
|
52
54
|
}
|
|
@@ -56,22 +58,22 @@ var blockToMarko = function (json, options) {
|
|
|
56
58
|
if (json.name === 'Fragment') {
|
|
57
59
|
return json.children.map(function (child) { return blockToMarko(child, options); }).join('\n');
|
|
58
60
|
}
|
|
59
|
-
if (
|
|
60
|
-
var forArguments = (
|
|
61
|
-
return "<for|".concat(forArguments, "| of=(").concat(processBinding(options.component, (
|
|
61
|
+
if ((0, mitosis_node_1.checkIsForNode)(json)) {
|
|
62
|
+
var forArguments = (0, for_1.getForArguments)(json).join(',');
|
|
63
|
+
return "<for|".concat(forArguments, "| of=(").concat(processBinding(options.component, (_c = json.bindings.each) === null || _c === void 0 ? void 0 : _c.code), ")>\n ").concat(json.children
|
|
62
64
|
.filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
|
|
63
65
|
.map(function (item) { return blockToMarko(item, options); })
|
|
64
66
|
.join('\n'), "\n </for>");
|
|
65
67
|
}
|
|
66
68
|
else if (json.name === 'Show') {
|
|
67
|
-
return "<if(".concat(processBinding(options.component, (
|
|
69
|
+
return "<if(".concat(processBinding(options.component, (_d = json.bindings.when) === null || _d === void 0 ? void 0 : _d.code), ")>\n ").concat(json.children
|
|
68
70
|
.filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
|
|
69
71
|
.map(function (item) { return blockToMarko(item, options); })
|
|
70
72
|
.join('\n'), "</if>\n ").concat(!json.meta.else ? '' : "<else>".concat(blockToMarko(json.meta.else, options), "</else>"));
|
|
71
73
|
}
|
|
72
74
|
var str = '';
|
|
73
75
|
str += "<".concat(json.name, " ");
|
|
74
|
-
if ((
|
|
76
|
+
if ((_e = json.bindings._spread) === null || _e === void 0 ? void 0 : _e.code) {
|
|
75
77
|
str += " ...(".concat(json.bindings._spread.code, ") ");
|
|
76
78
|
}
|
|
77
79
|
for (var key in json.properties) {
|
|
@@ -79,7 +81,7 @@ var blockToMarko = function (json, options) {
|
|
|
79
81
|
str += " ".concat(key, "=\"").concat(value, "\" ");
|
|
80
82
|
}
|
|
81
83
|
for (var key in json.bindings) {
|
|
82
|
-
var
|
|
84
|
+
var _g = json.bindings[key], code = _g.code, _h = _g.arguments, cusArgs = _h === void 0 ? ['event'] : _h;
|
|
83
85
|
if (key === '_spread' || key === '_forName') {
|
|
84
86
|
continue;
|
|
85
87
|
}
|
|
@@ -98,7 +100,7 @@ var blockToMarko = function (json, options) {
|
|
|
98
100
|
return str + ' />';
|
|
99
101
|
}
|
|
100
102
|
str += '>';
|
|
101
|
-
if ((
|
|
103
|
+
if ((_f = json.bindings.innerHTML) === null || _f === void 0 ? void 0 : _f.code) {
|
|
102
104
|
str += "$!{".concat(processBinding(options.component, json.bindings.innerHTML.code), "}");
|
|
103
105
|
}
|
|
104
106
|
if (json.children) {
|