@builder.io/mitosis 0.0.56-106 → 0.0.56-109

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.
Files changed (66) hide show
  1. package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.d.ts +5 -1
  2. package/dist/src/__tests__/data/blocks/onUpdateWithDeps.raw.jsx +3 -3
  3. package/dist/src/__tests__/shared.d.ts +6 -2
  4. package/dist/src/__tests__/shared.js +43 -14
  5. package/dist/src/generators/angular.d.ts +2 -2
  6. package/dist/src/generators/angular.js +4 -3
  7. package/dist/src/generators/builder.d.ts +4 -11
  8. package/dist/src/generators/builder.js +3 -2
  9. package/dist/src/generators/helpers/functions.d.ts +2 -0
  10. package/dist/src/generators/helpers/functions.js +28 -0
  11. package/dist/src/generators/html.d.ts +3 -3
  12. package/dist/src/generators/html.js +9 -7
  13. package/dist/src/generators/liquid.d.ts +2 -2
  14. package/dist/src/generators/liquid.js +4 -4
  15. package/dist/src/generators/lit/generate.d.ts +2 -2
  16. package/dist/src/generators/lit/generate.js +3 -2
  17. package/dist/src/generators/marko/generate.d.ts +2 -2
  18. package/dist/src/generators/marko/generate.js +10 -8
  19. package/dist/src/generators/mitosis.d.ts +3 -4
  20. package/dist/src/generators/mitosis.js +3 -2
  21. package/dist/src/generators/qwik/component-generator.d.ts +2 -2
  22. package/dist/src/generators/qwik/directives.js +6 -5
  23. package/dist/src/generators/react/generator.d.ts +3 -3
  24. package/dist/src/generators/react/generator.js +6 -4
  25. package/dist/src/generators/react-native.d.ts +2 -2
  26. package/dist/src/generators/solid/index.d.ts +2 -2
  27. package/dist/src/generators/solid/index.js +3 -2
  28. package/dist/src/generators/stencil/generate.d.ts +2 -2
  29. package/dist/src/generators/stencil/generate.js +5 -2
  30. package/dist/src/generators/svelte.d.ts +6 -7
  31. package/dist/src/generators/svelte.js +15 -31
  32. package/dist/src/generators/swift-ui.d.ts +3 -5
  33. package/dist/src/generators/swift-ui.js +3 -2
  34. package/dist/src/generators/template.d.ts +2 -2
  35. package/dist/src/generators/template.js +3 -2
  36. package/dist/src/generators/vue.d.ts +5 -3
  37. package/dist/src/generators/vue.js +227 -104
  38. package/dist/src/helpers/get-bindings.js +3 -5
  39. package/dist/src/helpers/nodes/for.d.ts +4 -0
  40. package/dist/src/helpers/nodes/for.js +13 -0
  41. package/dist/src/helpers/nullable.d.ts +1 -2
  42. package/dist/src/parsers/angular.js +2 -2
  43. package/dist/src/parsers/builder.js +6 -6
  44. package/dist/src/parsers/jsx/component-types.d.ts +1 -1
  45. package/dist/src/parsers/jsx/component-types.js +15 -2
  46. package/dist/src/parsers/jsx/element-parser.d.ts +6 -0
  47. package/dist/src/parsers/jsx/element-parser.js +243 -0
  48. package/dist/src/parsers/jsx/exports.d.ts +3 -0
  49. package/dist/src/parsers/jsx/exports.js +78 -0
  50. package/dist/src/parsers/jsx/function-parser.d.ts +7 -0
  51. package/dist/src/parsers/jsx/function-parser.js +291 -0
  52. package/dist/src/parsers/jsx/helpers.d.ts +2 -0
  53. package/dist/src/parsers/jsx/helpers.js +30 -1
  54. package/dist/src/parsers/jsx/imports.d.ts +7 -0
  55. package/dist/src/parsers/jsx/imports.js +65 -0
  56. package/dist/src/parsers/jsx/jsx.js +29 -515
  57. package/dist/src/parsers/jsx/state.d.ts +1 -1
  58. package/dist/src/parsers/jsx/state.js +6 -6
  59. package/dist/src/targets.d.ts +21 -28
  60. package/dist/src/targets.js +2 -2
  61. package/dist/src/types/config.d.ts +11 -1
  62. package/dist/src/types/mitosis-node.d.ts +14 -5
  63. package/dist/src/types/mitosis-node.js +3 -0
  64. package/dist/src/types/transpiler.d.ts +6 -1
  65. package/dist/tsconfig.build.tsbuildinfo +1 -1
  66. package/package.json +2 -2
@@ -1 +1,5 @@
1
- export default function OnUpdateWithDeps(): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
1
+ declare type Props = {
2
+ size: string;
3
+ };
4
+ export default function OnUpdateWithDeps(props: Props): import("@builder.io/mitosis/jsx-runtime").JSX.Element;
5
+ export {};
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mitosis_1 = require("@builder.io/mitosis");
4
- function OnUpdateWithDeps() {
4
+ function OnUpdateWithDeps(props) {
5
5
  var state = (0, mitosis_1.useStore)({
6
6
  a: 'a',
7
7
  b: 'b',
8
8
  });
9
9
  (0, mitosis_1.onUpdate)(function () {
10
- console.log('Runs when a or b changes', state.a, state.b);
11
- }, [state.a, state.b]);
10
+ console.log('Runs when a, b or size changes', state.a, state.b, props.size);
11
+ }, [state.a, state.b, props.size]);
12
12
  return <div />;
13
13
  }
14
14
  exports.default = OnUpdateWithDeps;
@@ -1,4 +1,8 @@
1
- import { Transpiler } from '../types/transpiler';
1
+ import { TranspilerGenerator } from '../types/transpiler';
2
2
  import { Target } from '../types/config';
3
3
  export declare const runTestsForJsx: () => void;
4
- export declare const runTestsForTarget: (target: Target, generator: Transpiler) => void;
4
+ export declare const runTestsForTarget: <X>({ target, generator, options, }: {
5
+ target: Target;
6
+ generator: TranspilerGenerator<X, string>;
7
+ options: X;
8
+ }) => void;
@@ -1,4 +1,15 @@
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
14
  exports.runTestsForTarget = exports.runTestsForJsx = void 0;
4
15
  var jsx_1 = require("../parsers/jsx");
@@ -60,6 +71,7 @@ var submitButtonBlock = require('./data/blocks/submit-button.raw');
60
71
  var text = require('./data/blocks/text.raw');
61
72
  var textarea = require('./data/blocks/textarea.raw');
62
73
  var video = require('./data/blocks/video.raw');
74
+ var builderRenderContent = require('./data/blocks/builder-render-content.raw');
63
75
  var path = 'test-path';
64
76
  var BASIC_TESTS = {
65
77
  Basic: basic,
@@ -93,6 +105,7 @@ var BASIC_TESTS = {
93
105
  preserveTyping: preserveTyping,
94
106
  typeDependency: typeDependency,
95
107
  defaultValsWithTypes: require('./data/types/component-with-default-values-types.raw'),
108
+ 'import types': builderRenderContent,
96
109
  subComponent: subComponent,
97
110
  nestedStyles: nestedStyles,
98
111
  propsDestructure: propsDestructure,
@@ -296,6 +309,12 @@ var TESTS_FOR_TARGET = {
296
309
  ],
297
310
  };
298
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
+ });
299
318
  JSX_TESTS.forEach(function (tests) {
300
319
  Object.keys(tests).forEach(function (key) {
301
320
  test(key, function () {
@@ -306,28 +325,38 @@ var runTestsForJsx = function () {
306
325
  });
307
326
  };
308
327
  exports.runTestsForJsx = runTestsForJsx;
309
- var runTestsForTarget = function (target, generator) {
328
+ var runTestsForTarget = function (_a) {
329
+ var target = _a.target, generator = _a.generator, options = _a.options;
310
330
  var testsArray = TESTS_FOR_TARGET[target];
311
331
  test('Remove Internal mitosis package', function () {
312
332
  var component = (0, jsx_1.parseJsx)(basicMitosis, {
313
333
  compileAwayPackages: ['@dummy/custom-mitosis'],
314
334
  });
315
- var output = generator({ component: component, path: path });
335
+ var output = generator(options)({ component: component, path: path });
316
336
  expect(output).toMatchSnapshot();
317
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
+ ];
318
342
  if (testsArray) {
319
- testsArray.forEach(function (tests) {
320
- Object.keys(tests).forEach(function (key) {
321
- test(key, function () {
322
- try {
323
- var component = (0, jsx_1.parseJsx)(tests[key]);
324
- var output = generator({ component: component, path: path });
325
- expect(output).toMatchSnapshot();
326
- }
327
- catch (error) {
328
- console.log('failed to parse', error);
329
- throw error;
330
- }
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
+ });
331
360
  });
332
361
  });
333
362
  });
@@ -1,5 +1,5 @@
1
1
  import { MitosisNode } from '../types/mitosis-node';
2
- import { BaseTranspilerOptions, Transpiler } from '../types/transpiler';
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: (options?: ToAngularOptions) => Transpiler;
13
+ export declare const componentToAngular: TranspilerGenerator<ToAngularOptions>;
14
14
  export {};
@@ -28,6 +28,7 @@ var map_refs_1 = require("../helpers/map-refs");
28
28
  var render_imports_1 = require("../helpers/render-imports");
29
29
  var strip_state_and_props_refs_1 = require("../helpers/strip-state-and-props-refs");
30
30
  var jsx_1 = require("../parsers/jsx");
31
+ var mitosis_node_1 = require("../types/mitosis-node");
31
32
  var plugins_1 = require("../modules/plugins");
32
33
  var is_children_1 = __importDefault(require("../helpers/is-children"));
33
34
  var get_props_1 = require("../helpers/get-props");
@@ -97,9 +98,9 @@ var blockToAngular = function (json, options, blockOptions) {
97
98
  }
98
99
  var str = '';
99
100
  var needsToRenderSlots = [];
100
- if (json.name === 'For') {
101
- var indexName = json.scope.For[1];
102
- str += "<ng-container *ngFor=\"let ".concat(json.properties._forName, " of ").concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_e = json.bindings.each) === null || _e === void 0 ? void 0 : _e.code, {
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, {
103
104
  contextVars: contextVars,
104
105
  outputVars: outputVars,
105
106
  domRefs: domRefs,
@@ -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 (node, options) {
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.properties._forName,
93
+ itemName: node.scope.forName,
93
94
  },
94
95
  children: node.children
95
96
  .filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
@@ -0,0 +1,2 @@
1
+ import { Plugin } from '../../modules/plugins';
2
+ export declare const FUNCTION_HACK_PLUGIN: Plugin;
@@ -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, Transpiler } from '../types/transpiler';
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: (options?: ToHtmlOptions) => Transpiler;
7
- export declare const componentToCustomElement: (options?: ToHtmlOptions) => Transpiler;
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, _g;
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 (json.name === 'For') {
225
- var forArguments = ((_c = json === null || json === void 0 ? void 0 : json.scope) === null || _c === void 0 ? void 0 : _c.For) || [];
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((_d = json.bindings.each) === null || _d === void 0 ? void 0 : _d.code, ";\n ").concat(options.format === 'class' ? 'this.' : '', "renderLoop(el, array, ").concat(argsStr, ");\n "));
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 = ((_e = json.bindings.when) === null || _e === void 0 ? void 0 : _e.code).replace(/;$/, '');
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 = (_f = json.bindings[key]) === null || _f === void 0 ? void 0 : _f.code;
285
- var cusArg = ((_g = json.bindings[key]) === null || _g === void 0 ? void 0 : _g.arguments) || ['event'];
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, Transpiler } from '../types/transpiler';
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: (options?: ToLiquidOptions) => Transpiler;
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 (json.name === 'For') {
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.properties._forName, " in ").concat((0, strip_state_and_props_refs_1.stripStateAndPropsRefs)((_c = json.bindings.each) === null || _c === void 0 ? void 0 : _c.code), " %}");
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, Transpiler } from '../../types/transpiler';
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: (options?: ToLitOptions) => Transpiler;
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 (json.name === 'For') {
52
- return "${".concat(processBinding((_c = json.bindings.each) === null || _c === void 0 ? void 0 : _c.code), "?.map((").concat(json.properties._forName, ", index) => (\n html`").concat(json.children
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 ))}");
@@ -1,7 +1,7 @@
1
- import { BaseTranspilerOptions, Transpiler } from '../../types/transpiler';
1
+ import { BaseTranspilerOptions, TranspilerGenerator } from '../../types/transpiler';
2
2
  export interface ToMarkoOptions extends BaseTranspilerOptions {
3
3
  }
4
- export declare const componentToMarko: (userOptions?: ToMarkoOptions) => Transpiler;
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, _g;
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 (json.name === 'For') {
60
- var forArguments = (((_c = json === null || json === void 0 ? void 0 : json.scope) === null || _c === void 0 ? void 0 : _c.For) || []).join(',');
61
- return "<for|".concat(forArguments, "| of=(").concat(processBinding(options.component, (_d = json.bindings.each) === null || _d === void 0 ? void 0 : _d.code), ")>\n ").concat(json.children
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, (_e = json.bindings.when) === null || _e === void 0 ? void 0 : _e.code), ")>\n ").concat(json.children
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 ((_f = json.bindings._spread) === null || _f === void 0 ? void 0 : _f.code) {
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 _h = json.bindings[key], code = _h.code, _j = _h.arguments, cusArgs = _j === void 0 ? ['event'] : _j;
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 ((_g = json.bindings.innerHTML) === null || _g === void 0 ? void 0 : _g.code) {
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) {
@@ -1,9 +1,8 @@
1
- import { Transpiler } from '../types/transpiler';
1
+ import { BaseTranspilerOptions, TranspilerGenerator } from '../types/transpiler';
2
2
  import { MitosisNode } from '../types/mitosis-node';
3
- export interface ToMitosisOptions {
4
- prettier?: boolean;
3
+ export interface ToMitosisOptions extends BaseTranspilerOptions {
5
4
  format: 'react' | 'legacy';
6
5
  }
7
6
  export declare const DEFAULT_FORMAT: ToMitosisOptions['format'];
8
7
  export declare const blockToMitosis: (json: MitosisNode, toMitosisOptions?: Partial<ToMitosisOptions>) => string;
9
- export declare const componentToMitosis: (toMitosisOptions?: Partial<ToMitosisOptions>) => Transpiler;
8
+ export declare const componentToMitosis: TranspilerGenerator<Partial<ToMitosisOptions>>;
@@ -38,6 +38,7 @@ var get_state_object_string_1 = require("../helpers/get-state-object-string");
38
38
  var map_refs_1 = require("../helpers/map-refs");
39
39
  var render_imports_1 = require("../helpers/render-imports");
40
40
  var jsx_1 = require("../parsers/jsx");
41
+ var mitosis_node_1 = require("../types/mitosis-node");
41
42
  var react_1 = require("./react");
42
43
  var state_1 = require("../helpers/state");
43
44
  exports.DEFAULT_FORMAT = 'legacy';
@@ -57,9 +58,9 @@ var blockToMitosis = function (json, toMitosisOptions) {
57
58
  prettier: options.prettier,
58
59
  });
59
60
  }
60
- if (json.name === 'For') {
61
+ if ((0, mitosis_node_1.checkIsForNode)(json)) {
61
62
  var needsWrapper = json.children.length !== 1;
62
- return "<For each={".concat((_a = json.bindings.each) === null || _a === void 0 ? void 0 : _a.code, "}>\n {(").concat(json.properties._forName, ", index) =>\n ").concat(needsWrapper ? '<>' : '', "\n ").concat(json.children.map(function (child) { return (0, exports.blockToMitosis)(child, options); }), "}\n ").concat(needsWrapper ? '</>' : '', "\n </For>");
63
+ return "<For each={".concat((_a = json.bindings.each) === null || _a === void 0 ? void 0 : _a.code, "}>\n {(").concat(json.scope.forName, ", index) =>\n ").concat(needsWrapper ? '<>' : '', "\n ").concat(json.children.map(function (child) { return (0, exports.blockToMitosis)(child, options); }), "}\n ").concat(needsWrapper ? '</>' : '', "\n </For>");
63
64
  }
64
65
  if (json.properties._text) {
65
66
  return json.properties._text;
@@ -1,4 +1,4 @@
1
- import { BaseTranspilerOptions, Transpiler } from '../../types/transpiler';
1
+ import { BaseTranspilerOptions, TranspilerGenerator } from '../../types/transpiler';
2
2
  export interface ToQwikOptions extends BaseTranspilerOptions {
3
3
  }
4
- export declare const componentToQwik: (userOptions?: ToQwikOptions) => Transpiler;
4
+ export declare const componentToQwik: TranspilerGenerator<ToQwikOptions>;
@@ -5,6 +5,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.CoreButton = exports.__passThroughProps__ = exports.Image = exports.DIRECTIVES = void 0;
8
+ var for_1 = require("../../helpers/nodes/for");
8
9
  var minify_1 = require("../minify");
9
10
  var src_generator_1 = require("./src-generator");
10
11
  exports.DIRECTIVES = {
@@ -27,17 +28,17 @@ exports.DIRECTIVES = {
27
28
  });
28
29
  };
29
30
  },
30
- For: function (node, blockFn) {
31
+ For: function (_node, blockFn) {
31
32
  return function () {
32
33
  var _this = this;
33
34
  var _a;
35
+ var node = _node;
34
36
  var expr = (_a = node.bindings.each) === null || _a === void 0 ? void 0 : _a.code;
35
37
  this.jsxExpression(function () {
36
- var forName = node.properties._forName || '_';
37
- var indexName = node.properties._indexName;
38
+ var forArgs = (0, for_1.getForArguments)(node);
39
+ var forName = forArgs[0];
38
40
  _this.emit('(', expr, '||[]).map(');
39
- _this.isBuilder && _this.emit('(('),
40
- _this.emit('function(', forName, indexName ? ',' : '', indexName ? indexName : '', '){');
41
+ _this.isBuilder && _this.emit('(('), _this.emit('function(', forArgs, '){');
41
42
  if (_this.isBuilder) {
42
43
  _this.emit('var state=Object.assign({},this,{', (0, src_generator_1.iteratorProperty)(expr), ':', forName, '==null?{}:', forName, '});');
43
44
  }
@@ -1,6 +1,6 @@
1
- import { Transpiler } from '../../types/transpiler';
1
+ import { TranspilerGenerator } from '../../types/transpiler';
2
2
  import { MitosisNode } from '../../types/mitosis-node';
3
3
  import { ToReactOptions } from './types';
4
4
  export declare const blockToReact: (json: MitosisNode, options: ToReactOptions, parentSlots?: any[]) => string;
5
- export declare const componentToPreact: (reactOptions?: ToReactOptions) => Transpiler;
6
- export declare const componentToReact: (reactOptions?: ToReactOptions) => Transpiler;
5
+ export declare const componentToPreact: TranspilerGenerator<ToReactOptions>;
6
+ export declare const componentToReact: TranspilerGenerator<ToReactOptions>;
@@ -49,6 +49,7 @@ var state_1 = require("../../helpers/state");
49
49
  var state_2 = require("./state");
50
50
  var helpers_2 = require("./helpers");
51
51
  var hash_sum_1 = __importDefault(require("hash-sum"));
52
+ var for_1 = require("../../helpers/nodes/for");
52
53
  var openFrag = function (options) { return getFragment('open', options); };
53
54
  var closeFrag = function (options) { return getFragment('close', options); };
54
55
  function getFragment(type, options) {
@@ -87,11 +88,12 @@ var NODE_MAPPERS = {
87
88
  .map(function (item) { return (0, exports.blockToReact)(item, options); })
88
89
  .join('\n')).concat(wrap ? getFragment('close', options) : '');
89
90
  },
90
- For: function (json, options) {
91
- var _a, _b;
91
+ For: function (_json, options) {
92
+ var _a;
93
+ var json = _json;
92
94
  var wrap = wrapInFragment(json);
93
- var forArguments = (((_a = json === null || json === void 0 ? void 0 : json.scope) === null || _a === void 0 ? void 0 : _a.For) || []).join(',');
94
- return "{".concat((0, helpers_2.processBinding)((_b = json.bindings.each) === null || _b === void 0 ? void 0 : _b.code, options), "?.map((").concat(forArguments, ") => (\n ").concat(wrap ? openFrag(options) : '').concat(json.children
95
+ var forArguments = (0, for_1.getForArguments)(json).join(', ');
96
+ return "{".concat((0, helpers_2.processBinding)((_a = json.bindings.each) === null || _a === void 0 ? void 0 : _a.code, options), "?.map((").concat(forArguments, ") => (\n ").concat(wrap ? openFrag(options) : '').concat(json.children
95
97
  .filter(filter_empty_text_nodes_1.filterEmptyTextNodes)
96
98
  .map(function (item) { return (0, exports.blockToReact)(item, options); })
97
99
  .join('\n')).concat(wrap ? closeFrag(options) : '', "\n ))}");
@@ -1,9 +1,9 @@
1
1
  import { ClassStyleMap } from '../helpers/styles/helpers';
2
2
  import { MitosisComponent } from '../types/mitosis-component';
3
- import { BaseTranspilerOptions, Transpiler } from '../types/transpiler';
3
+ import { BaseTranspilerOptions, TranspilerGenerator } from '../types/transpiler';
4
4
  export interface ToReactNativeOptions extends BaseTranspilerOptions {
5
5
  stylesType?: 'emotion' | 'react-native';
6
6
  stateType?: 'useState' | 'mobx' | 'valtio' | 'solid' | 'builder';
7
7
  }
8
8
  export declare const collectReactNativeStyles: (json: MitosisComponent) => ClassStyleMap;
9
- export declare const componentToReactNative: (options?: ToReactNativeOptions) => Transpiler;
9
+ export declare const componentToReactNative: TranspilerGenerator<ToReactNativeOptions>;
@@ -1,3 +1,3 @@
1
- import { Transpiler } from '../../types/transpiler';
1
+ import { TranspilerGenerator } from '../../types/transpiler';
2
2
  import { ToSolidOptions } from './types';
3
- export declare const componentToSolid: (passedOptions?: Partial<ToSolidOptions>) => Transpiler;
3
+ export declare const componentToSolid: TranspilerGenerator<Partial<ToSolidOptions>>;