@builder.io/mitosis 0.0.85 → 0.0.87

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 (30) hide show
  1. package/dist/src/generators/angular.js +1 -1
  2. package/dist/src/generators/qwik/jsx.js +19 -21
  3. package/dist/src/generators/react/generator.js +5 -6
  4. package/dist/src/generators/react/state.js +12 -5
  5. package/dist/src/generators/react-native.js +2 -1
  6. package/dist/src/generators/rsc.js +3 -2
  7. package/dist/src/generators/solid/index.js +3 -2
  8. package/dist/src/generators/svelte/blocks.js +3 -2
  9. package/dist/src/generators/vue/blocks.js +59 -50
  10. package/dist/src/generators/vue/compositionApi.js +1 -1
  11. package/dist/src/generators/vue/optionsApi.js +1 -1
  12. package/dist/src/generators/vue/vue.js +2 -1
  13. package/dist/src/helpers/bindings.d.ts +2 -0
  14. package/dist/src/helpers/bindings.js +16 -0
  15. package/dist/src/helpers/get-styles.js +2 -1
  16. package/dist/src/parsers/angular.js +8 -7
  17. package/dist/src/parsers/builder/builder.js +30 -26
  18. package/dist/src/parsers/jsx/element-parser.js +18 -15
  19. package/dist/src/parsers/jsx/state.js +1 -12
  20. package/dist/src/parsers/svelte/helpers/bindings.js +5 -4
  21. package/dist/src/parsers/svelte/helpers/post-process.js +5 -8
  22. package/dist/src/parsers/svelte/html/each.d.ts +2 -33
  23. package/dist/src/parsers/svelte/html/each.js +3 -2
  24. package/dist/src/parsers/svelte/html/element.js +17 -23
  25. package/dist/src/parsers/svelte/html/if-else.js +3 -2
  26. package/dist/src/parsers/svelte/html/mustache-tag.js +5 -4
  27. package/dist/src/plugins/compile-away-builder-components.js +21 -20
  28. package/dist/src/types/mitosis-node.d.ts +9 -2
  29. package/dist/tsconfig.build.tsbuildinfo +1 -1
  30. package/package.json +1 -1
@@ -53,6 +53,7 @@ var parsers_1 = require("../../helpers/parsers");
53
53
  var __1 = require("../..");
54
54
  var helpers_1 = require("./helpers");
55
55
  var state_1 = require("../jsx/state");
56
+ var bindings_1 = require("../../helpers/bindings");
56
57
  // Omit some superflous styles that can come from Builder's web importer
57
58
  var styleOmitList = [
58
59
  'backgroundRepeatX',
@@ -108,7 +109,7 @@ var getActionBindingsFromBlock = function (block, options) {
108
109
  continue;
109
110
  }
110
111
  var useKey = "on".concat((0, lodash_1.upperFirst)(key));
111
- bindings[useKey] = { code: "".concat(wrapBindingIfNeeded(value, options)) };
112
+ bindings[useKey] = (0, bindings_1.createSingleBinding)({ code: "".concat(wrapBindingIfNeeded(value, options)) });
112
113
  }
113
114
  }
114
115
  return bindings;
@@ -225,18 +226,19 @@ var componentMappers = __assign(__assign({ Symbol: function (block, options) {
225
226
  var css = getCssFromBlock(block);
226
227
  var styleString = getStyleStringFromBlock(block, options);
227
228
  var actionBindings = getActionBindingsFromBlock(block, options);
229
+ var bindings = __assign(__assign(__assign({ symbol: (0, bindings_1.createSingleBinding)({
230
+ code: JSON.stringify({
231
+ data: (_a = block.component) === null || _a === void 0 ? void 0 : _a.options.symbol.data,
232
+ content: (_b = block.component) === null || _b === void 0 ? void 0 : _b.options.symbol.content,
233
+ }),
234
+ }) }, actionBindings), (styleString && {
235
+ style: (0, bindings_1.createSingleBinding)({ code: styleString }),
236
+ })), (Object.keys(css).length && {
237
+ css: (0, bindings_1.createSingleBinding)({ code: JSON.stringify(css) }),
238
+ }));
228
239
  return (0, create_mitosis_node_1.createMitosisNode)({
229
240
  name: 'Symbol',
230
- bindings: __assign(__assign(__assign({ symbol: {
231
- code: JSON.stringify({
232
- data: (_a = block.component) === null || _a === void 0 ? void 0 : _a.options.symbol.data,
233
- content: (_b = block.component) === null || _b === void 0 ? void 0 : _b.options.symbol.content,
234
- }),
235
- } }, actionBindings), (styleString && {
236
- style: { code: styleString },
237
- })), (Object.keys(css).length && {
238
- css: { code: JSON.stringify(css) },
239
- })),
241
+ bindings: bindings,
240
242
  });
241
243
  } }, (!exports.symbolBlocksAsChildren
242
244
  ? {}
@@ -255,15 +257,15 @@ var componentMappers = __assign(__assign({ Symbol: function (block, options) {
255
257
  name: 'Symbol',
256
258
  bindings: __assign(__assign(__assign({
257
259
  // TODO: this doesn't use all attrs
258
- symbol: {
260
+ symbol: (0, bindings_1.createSingleBinding)({
259
261
  code: JSON.stringify({
260
262
  data: (_c = block.component) === null || _c === void 0 ? void 0 : _c.options.symbol.content.data,
261
263
  content: content, // TODO: convert to <SymbolInternal>...</SymbolInternal> so can be parsed
262
264
  }),
263
- } }, actionBindings), (styleString && {
264
- style: { code: styleString },
265
+ }) }, actionBindings), (styleString && {
266
+ style: (0, bindings_1.createSingleBinding)({ code: styleString }),
265
267
  })), (Object.keys(css).length && {
266
- css: { code: JSON.stringify(css) },
268
+ css: (0, bindings_1.createSingleBinding)({ code: JSON.stringify(css) }),
267
269
  })),
268
270
  children: !blocks
269
271
  ? []
@@ -298,7 +300,9 @@ var componentMappers = __assign(__assign({ Symbol: function (block, options) {
298
300
  return (0, create_mitosis_node_1.createMitosisNode)({
299
301
  name: 'For',
300
302
  bindings: {
301
- each: { code: "state.".concat(block.component.options.repeat.collection) },
303
+ each: (0, bindings_1.createSingleBinding)({
304
+ code: "state.".concat(block.component.options.repeat.collection),
305
+ }),
302
306
  },
303
307
  scope: {
304
308
  forName: block.component.options.repeat.itemName,
@@ -332,9 +336,9 @@ var componentMappers = __assign(__assign({ Symbol: function (block, options) {
332
336
  var innerBindings = {};
333
337
  var componentOptionsText = blockBindings['component.options.text'];
334
338
  if (componentOptionsText) {
335
- innerBindings[options.preserveTextBlocks ? 'innerHTML' : '_text'] = {
339
+ innerBindings[options.preserveTextBlocks ? 'innerHTML' : '_text'] = (0, bindings_1.createSingleBinding)({
336
340
  code: wrapBindingIfNeeded(componentOptionsText.code, options),
337
- };
341
+ });
338
342
  }
339
343
  var innerProperties = (_a = {},
340
344
  _a[options.preserveTextBlocks ? 'innerHTML' : '_text'] = block.component.options.text,
@@ -394,14 +398,14 @@ var builderElementToMitosisNode = function (block, options, _internalOptions) {
394
398
  if (isFragment) {
395
399
  return (0, create_mitosis_node_1.createMitosisNode)({
396
400
  name: 'Show',
397
- bindings: { when: { code: code } },
401
+ bindings: { when: (0, bindings_1.createSingleBinding)({ code: code }) },
398
402
  children: ((_d = block.children) === null || _d === void 0 ? void 0 : _d.map(function (child) { return (0, exports.builderElementToMitosisNode)(child, options); })) || [],
399
403
  });
400
404
  }
401
405
  else {
402
406
  return (0, create_mitosis_node_1.createMitosisNode)({
403
407
  name: 'Show',
404
- bindings: { when: { code: code } },
408
+ bindings: { when: (0, bindings_1.createSingleBinding)({ code: code }) },
405
409
  children: [
406
410
  (0, exports.builderElementToMitosisNode)(__assign(__assign({}, block), { code: __assign(__assign({}, block.code), { bindings: (0, lodash_1.omit)(blockBindings, 'show', 'hide') }), bindings: (0, lodash_1.omit)(blockBindings, 'show', 'hide') }), options),
407
411
  ],
@@ -416,9 +420,9 @@ var builderElementToMitosisNode = function (block, options, _internalOptions) {
416
420
  return (0, create_mitosis_node_1.createMitosisNode)({
417
421
  name: 'For',
418
422
  bindings: {
419
- each: {
423
+ each: (0, bindings_1.createSingleBinding)({
420
424
  code: wrapBindingIfNeeded((_g = block.repeat) === null || _g === void 0 ? void 0 : _g.collection, options),
421
- },
425
+ }),
422
426
  },
423
427
  scope: {
424
428
  forName: ((_h = block.repeat) === null || _h === void 0 ? void 0 : _h.itemName) || 'item',
@@ -433,9 +437,9 @@ var builderElementToMitosisNode = function (block, options, _internalOptions) {
433
437
  return (0, create_mitosis_node_1.createMitosisNode)({
434
438
  name: 'For',
435
439
  bindings: {
436
- each: {
440
+ each: (0, bindings_1.createSingleBinding)({
437
441
  code: wrapBindingIfNeeded((_m = block.repeat) === null || _m === void 0 ? void 0 : _m.collection, options),
438
- },
442
+ }),
439
443
  },
440
444
  scope: {
441
445
  forName: ((_o = block.repeat) === null || _o === void 0 ? void 0 : _o.itemName) || 'item',
@@ -745,10 +749,10 @@ function mapBuilderBindingsToMitosisBindingWithCode(bindings) {
745
749
  Object.keys(bindings).forEach(function (key) {
746
750
  var value = bindings[key];
747
751
  if (typeof value === 'string') {
748
- result[key] = { code: value };
752
+ result[key] = (0, bindings_1.createSingleBinding)({ code: value });
749
753
  }
750
754
  else if (value && typeof value === 'object' && value.code) {
751
- result[key] = { code: value.code };
755
+ result[key] = (0, bindings_1.createSingleBinding)({ code: value.code });
752
756
  }
753
757
  else {
754
758
  throw new Error('Unexpected binding value: ' + JSON.stringify(value));
@@ -44,6 +44,7 @@ var nullable_1 = require("../../helpers/nullable");
44
44
  var create_mitosis_node_1 = require("../../helpers/create-mitosis-node");
45
45
  var function_1 = require("fp-ts/lib/function");
46
46
  var helpers_1 = require("./helpers");
47
+ var bindings_1 = require("../../helpers/bindings");
47
48
  var types = babel.types;
48
49
  var getForArguments = function (params) {
49
50
  var _a = params
@@ -81,11 +82,11 @@ var jsxElementToJson = function (node) {
81
82
  return (0, create_mitosis_node_1.createMitosisNode)({
82
83
  name: 'For',
83
84
  bindings: {
84
- each: {
85
+ each: (0, bindings_1.createSingleBinding)({
85
86
  code: (0, generator_1.default)(node.expression.callee)
86
87
  .code // Remove .map or potentially ?.map
87
88
  .replace(/\??\.map$/, ''),
88
- },
89
+ }),
89
90
  },
90
91
  scope: forArguments,
91
92
  children: [(0, exports.jsxElementToJson)(callback.body)],
@@ -99,7 +100,7 @@ var jsxElementToJson = function (node) {
99
100
  return (0, create_mitosis_node_1.createMitosisNode)({
100
101
  name: 'Show',
101
102
  bindings: {
102
- when: { code: (0, generator_1.default)(node.expression.left).code },
103
+ when: (0, bindings_1.createSingleBinding)({ code: (0, generator_1.default)(node.expression.left).code }),
103
104
  },
104
105
  children: [(0, exports.jsxElementToJson)(node.expression.right)],
105
106
  });
@@ -116,7 +117,7 @@ var jsxElementToJson = function (node) {
116
117
  else: (0, exports.jsxElementToJson)(node.expression.alternate),
117
118
  },
118
119
  bindings: {
119
- when: { code: (0, generator_1.default)(node.expression.test).code },
120
+ when: (0, bindings_1.createSingleBinding)({ code: (0, generator_1.default)(node.expression.test).code }),
120
121
  },
121
122
  children: [(0, exports.jsxElementToJson)(node.expression.consequent)],
122
123
  });
@@ -124,7 +125,7 @@ var jsxElementToJson = function (node) {
124
125
  // TODO: support {foo ? bar : baz}
125
126
  return (0, create_mitosis_node_1.createMitosisNode)({
126
127
  bindings: {
127
- _text: { code: (0, generator_1.default)(node.expression).code },
128
+ _text: (0, bindings_1.createSingleBinding)({ code: (0, generator_1.default)(node.expression).code }),
128
129
  },
129
130
  });
130
131
  }
@@ -153,7 +154,7 @@ var jsxElementToJson = function (node) {
153
154
  meta: {
154
155
  else: elseValue || undefined,
155
156
  },
156
- bindings: __assign({}, (whenValue ? { when: { code: whenValue } } : {})),
157
+ bindings: __assign({}, (whenValue ? { when: (0, bindings_1.createSingleBinding)({ code: whenValue }) } : {})),
157
158
  children: node.children.map(exports.jsxElementToJson).filter(nullable_1.checkIsDefined),
158
159
  });
159
160
  }
@@ -178,9 +179,9 @@ var jsxElementToJson = function (node) {
178
179
  return (0, create_mitosis_node_1.createMitosisNode)({
179
180
  name: 'For',
180
181
  bindings: {
181
- each: {
182
+ each: (0, bindings_1.createSingleBinding)({
182
183
  code: forCode,
183
- },
184
+ }),
184
185
  },
185
186
  scope: forArguments,
186
187
  children: [(0, exports.jsxElementToJson)(childExpression.body)],
@@ -211,26 +212,27 @@ var jsxElementToJson = function (node) {
211
212
  var value = item.value;
212
213
  // boolean attribute
213
214
  if (value === null) {
214
- memo[key] = {
215
+ memo[key] = (0, bindings_1.createSingleBinding)({
215
216
  code: 'true',
216
- };
217
+ });
217
218
  return memo;
218
219
  }
219
220
  if (types.isJSXExpressionContainer(value) && !types.isStringLiteral(value.expression)) {
220
221
  var expression = value.expression;
221
222
  if (types.isArrowFunctionExpression(expression)) {
222
223
  if (key.startsWith('on')) {
223
- memo[key] = {
224
+ var args = expression.params.map(function (node) { return node === null || node === void 0 ? void 0 : node.name; });
225
+ memo[key] = (0, bindings_1.createSingleBinding)({
224
226
  code: (0, generator_1.default)(expression.body).code,
225
- arguments: expression.params.map(function (node) { return node === null || node === void 0 ? void 0 : node.name; }),
226
- };
227
+ arguments: args.length ? args : undefined,
228
+ });
227
229
  }
228
230
  else {
229
- memo[key] = { code: (0, generator_1.default)(expression.body).code };
231
+ memo[key] = (0, bindings_1.createSingleBinding)({ code: (0, generator_1.default)(expression.body).code });
230
232
  }
231
233
  }
232
234
  else {
233
- memo[key] = { code: (0, generator_1.default)(expression).code };
235
+ memo[key] = (0, bindings_1.createSingleBinding)({ code: (0, generator_1.default)(expression).code });
234
236
  }
235
237
  return memo;
236
238
  }
@@ -243,6 +245,7 @@ var jsxElementToJson = function (node) {
243
245
  memo[key] = {
244
246
  code: types.stringLiteral((0, generator_1.default)(item.argument).code).value,
245
247
  type: 'spread',
248
+ spreadType: 'normal',
246
249
  };
247
250
  }
248
251
  return memo;
@@ -112,21 +112,10 @@ function mapStateIdentifiers(json) {
112
112
  }
113
113
  }
114
114
  (0, traverse_1.default)(json).forEach(function (item) {
115
- var _a, _b;
116
115
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
117
116
  for (var key in item.bindings) {
118
117
  var value = item.bindings[key];
119
- if (value) {
120
- item.bindings[key] = {
121
- code: mapStateIdentifiersInExpression(value.code, stateProperties),
122
- };
123
- if ((_a = value.arguments) === null || _a === void 0 ? void 0 : _a.length) {
124
- item.bindings[key].arguments = value.arguments;
125
- }
126
- if ((_b = value.type) === null || _b === void 0 ? void 0 : _b.length) {
127
- item.bindings[key].type = value.type;
128
- }
129
- }
118
+ item.bindings[key].code = mapStateIdentifiersInExpression(value.code, stateProperties);
130
119
  }
131
120
  consolidateClassBindings(item);
132
121
  }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.processBindings = void 0;
4
+ var bindings_1 = require("../../../helpers/bindings");
4
5
  function replaceGroupWithChecked(node, isArray) {
5
6
  var _a, _b, _c;
6
7
  if (isArray === void 0) { isArray = false; }
@@ -19,9 +20,9 @@ function replaceGroupWithChecked(node, isArray) {
19
20
  ? "".concat(groupBinding, " === ").concat(bindingValue)
20
21
  : "".concat(groupBinding, " === '").concat(propertyValue, "'");
21
22
  }
22
- node.bindings['checked'] = {
23
+ node.bindings['checked'] = (0, bindings_1.createSingleBinding)({
23
24
  code: code,
24
- };
25
+ });
25
26
  delete node.bindings.group;
26
27
  }
27
28
  }
@@ -66,10 +67,10 @@ function processBindings(json, node) {
66
67
  onChangeCode = "event.target.checked ? ".concat(binding, ".push(").concat(target, ") : ").concat(binding, ".splice(").concat(binding, ".indexOf(").concat(node.properties.value ? "'".concat(node.properties.value, "'") : (_g = node.bindings.value) === null || _g === void 0 ? void 0 : _g.code, "), 1)");
67
68
  }
68
69
  if (name !== 'ref' && binding) {
69
- node.bindings['onChange'] = {
70
+ node.bindings['onChange'] = (0, bindings_1.createSingleBinding)({
70
71
  code: onChangeCode,
71
72
  arguments: ['event'],
72
- };
73
+ });
73
74
  }
74
75
  }
75
76
  exports.processBindings = processBindings;
@@ -119,15 +119,12 @@ function addPropertiesAndState(json, input) {
119
119
  return output;
120
120
  }
121
121
  function addPropertiesAndStateToNode(json, node) {
122
- var _a, _b, _c, _d;
123
- for (var _i = 0, _e = Object.keys(node.bindings); _i < _e.length; _i++) {
124
- var key = _e[_i];
122
+ var _a;
123
+ for (var _i = 0, _b = Object.keys(node.bindings); _i < _b.length; _i++) {
124
+ var key = _b[_i];
125
125
  if (Object.prototype.hasOwnProperty.call(node.bindings, key)) {
126
- node.bindings[key] = {
127
- code: addPropertiesAndState(json, (_b = (_a = node.bindings[key]) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : '').trim(),
128
- arguments: (_c = node.bindings[key]) === null || _c === void 0 ? void 0 : _c.arguments,
129
- type: (_d = node.bindings[key]) === null || _d === void 0 ? void 0 : _d.type,
130
- };
126
+ var value = node.bindings[key];
127
+ node.bindings[key].code = addPropertiesAndState(json, (_a = value === null || value === void 0 ? void 0 : value.code) !== null && _a !== void 0 ? _a : '').trim();
131
128
  }
132
129
  }
133
130
  }
@@ -1,35 +1,4 @@
1
1
  import type { TemplateNode } from 'svelte/types/compiler/interfaces';
2
2
  import type { SveltosisComponent } from '../types';
3
- export declare function parseEach(json: SveltosisComponent, node: TemplateNode): {
4
- name: string;
5
- scope: {
6
- forName: any;
7
- };
8
- bindings: {
9
- each: {
10
- code: any;
11
- };
12
- };
13
- children: import("../../..").MitosisNode[];
14
- '@type': "@builder.io/mitosis/node";
15
- meta: import("../../../types/json").JSONObject;
16
- properties: {
17
- [key: string]: string | undefined;
18
- };
19
- } | {
20
- name: string;
21
- scope: {
22
- forName: any;
23
- };
24
- bindings: {
25
- each: {
26
- code: any;
27
- };
28
- };
29
- children: import("../../..").MitosisNode[];
30
- '@type': "@builder.io/mitosis/node";
31
- meta: import("../../../types/json").JSONObject;
32
- properties: {
33
- [key: string]: string | undefined;
34
- };
35
- };
3
+ import { MitosisNode } from '../../../types/mitosis-node';
4
+ export declare function parseEach(json: SveltosisComponent, node: TemplateNode): MitosisNode;
@@ -14,11 +14,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.parseEach = void 0;
15
15
  var mitosis_node_1 = require("../helpers/mitosis-node");
16
16
  var children_1 = require("../helpers/children");
17
+ var bindings_1 = require("../../../helpers/bindings");
17
18
  function parseEach(json, node) {
18
19
  return __assign(__assign({}, (0, mitosis_node_1.createMitosisNode)()), { name: 'For', scope: { forName: node.context.name }, bindings: {
19
- each: {
20
+ each: (0, bindings_1.createSingleBinding)({
20
21
  code: node.expression.name,
21
- },
22
+ }),
22
23
  }, children: (0, children_1.parseChildren)(json, node) });
23
24
  }
24
25
  exports.parseEach = parseEach;
@@ -18,6 +18,7 @@ var mitosis_node_1 = require("../helpers/mitosis-node");
18
18
  var children_1 = require("../helpers/children");
19
19
  var string_1 = require("../helpers/string");
20
20
  var actions_1 = require("./actions");
21
+ var bindings_1 = require("../../../helpers/bindings");
21
22
  var SPECIAL_ELEMENTS = new Set(['svelte:component', 'svelte:element']);
22
23
  function parseElement(json, node) {
23
24
  var _a;
@@ -28,9 +29,7 @@ function parseElement(json, node) {
28
29
  var nodeReference = (0, string_1.uniqueName)(Object.keys(json.refs), node.name);
29
30
  if (!Object.keys(json.refs).includes(nodeReference)) {
30
31
  json.refs[nodeReference] = { argument: '', typeParameter: '' };
31
- mitosisNode.bindings.ref = {
32
- code: nodeReference,
33
- };
32
+ mitosisNode.bindings.ref = (0, bindings_1.createSingleBinding)({ code: nodeReference });
34
33
  }
35
34
  return nodeReference;
36
35
  };
@@ -72,23 +71,21 @@ function parseElement(json, node) {
72
71
  ? (0, string_1.insertAt)(mitosisNode.bindings.class.code, ' ${' + code + '}', mitosisNode.bindings.class.code.length - 1)
73
72
  : '`${' + code + '}`';
74
73
  }
75
- mitosisNode.bindings[attribute.name] = {
76
- code: code,
77
- };
74
+ mitosisNode.bindings[attribute.name] = (0, bindings_1.createSingleBinding)({ code: code });
78
75
  break;
79
76
  }
80
77
  case 'AttributeShorthand': {
81
78
  // e.g. <input {value}/>
82
79
  var value = attribute.value[0];
83
80
  var code = value.expression.name;
84
- mitosisNode.bindings[code] = {
85
- code: code,
86
- };
81
+ mitosisNode.bindings[code] = (0, bindings_1.createSingleBinding)({ code: code });
87
82
  break;
88
83
  }
89
84
  default: {
90
85
  var name_1 = attribute.name;
91
- mitosisNode.bindings[name_1] = { code: attribute.value.toString() };
86
+ mitosisNode.bindings[name_1] = (0, bindings_1.createSingleBinding)({
87
+ code: attribute.value.toString(),
88
+ });
92
89
  }
93
90
  }
94
91
  break;
@@ -98,6 +95,7 @@ function parseElement(json, node) {
98
95
  mitosisNode.bindings[expression.name] = {
99
96
  code: expression.name,
100
97
  type: 'spread',
98
+ spreadType: 'normal',
101
99
  };
102
100
  break;
103
101
  }
@@ -145,7 +143,7 @@ function parseElement(json, node) {
145
143
  arguments: ['event'],
146
144
  };
147
145
  }
148
- mitosisNode.bindings["on".concat((0, lodash_1.upperFirst)(attribute.name))] = object;
146
+ mitosisNode.bindings["on".concat((0, lodash_1.upperFirst)(attribute.name))] = (0, bindings_1.createSingleBinding)(object);
149
147
  // add event handlers as props (e.g. props.onClick)
150
148
  json.props = __assign(__assign({}, json.props), (_a = {}, _a["on".concat((0, lodash_1.upperFirst)(attribute.name))] = { default: function () { return ({}); } }, _a));
151
149
  break;
@@ -172,14 +170,14 @@ function parseElement(json, node) {
172
170
  }
173
171
  if (name_2 !== 'ref' && name_2 !== 'group' && name_2 !== 'this') {
174
172
  var onChangeCode = "".concat(binding, " = event.target.value");
175
- mitosisNode.bindings['onChange'] = {
173
+ mitosisNode.bindings['onChange'] = (0, bindings_1.createSingleBinding)({
176
174
  code: onChangeCode,
177
175
  arguments: ['event'],
178
- };
176
+ });
179
177
  }
180
- mitosisNode.bindings[name_2] = {
178
+ mitosisNode.bindings[name_2] = (0, bindings_1.createSingleBinding)({
181
179
  code: binding,
182
- };
180
+ });
183
181
  break;
184
182
  }
185
183
  case 'Class': {
@@ -200,16 +198,12 @@ function parseElement(json, node) {
200
198
  Object.prototype.hasOwnProperty.call(mitosisNode.bindings.class, 'code') &&
201
199
  ((_u = mitosisNode.bindings.class) === null || _u === void 0 ? void 0 : _u.code.length)) {
202
200
  code = (0, string_1.insertAt)(mitosisNode.bindings.class.code, ' ${' + binding + '}', mitosisNode.bindings.class.code.length - 1);
203
- mitosisNode.bindings.class = {
204
- code: code,
205
- };
201
+ mitosisNode.bindings.class = (0, bindings_1.createSingleBinding)({ code: code });
206
202
  }
207
203
  else {
208
204
  // otherwise just assign
209
205
  code = '`' + code + '${' + binding + '}`';
210
- mitosisNode.bindings.class = {
211
- code: code,
212
- };
206
+ mitosisNode.bindings.class = (0, bindings_1.createSingleBinding)({ code: code });
213
207
  }
214
208
  break;
215
209
  }
@@ -228,9 +222,9 @@ function parseElement(json, node) {
228
222
  if (filteredChildren.length === 1 && filteredChildren[0].type === 'RawMustacheTag') {
229
223
  var child = filteredChildren[0];
230
224
  mitosisNode.children = [];
231
- mitosisNode.bindings.innerHTML = {
225
+ mitosisNode.bindings.innerHTML = (0, bindings_1.createSingleBinding)({
232
226
  code: (0, astring_1.generate)(child.expression),
233
- };
227
+ });
234
228
  }
235
229
  else {
236
230
  mitosisNode.children = (0, children_1.parseChildren)(json, node);
@@ -16,14 +16,15 @@ var astring_1 = require("astring");
16
16
  var _1 = require(".");
17
17
  var mitosis_node_1 = require("../helpers/mitosis-node");
18
18
  var children_1 = require("../helpers/children");
19
+ var bindings_1 = require("../../../helpers/bindings");
19
20
  function parseIfElse(json, node) {
20
21
  var _a, _b, _c;
21
22
  var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
22
23
  mitosisNode.name = 'Show';
23
24
  mitosisNode.bindings = {
24
- when: {
25
+ when: (0, bindings_1.createSingleBinding)({
25
26
  code: (0, astring_1.generate)(node.expression),
26
- },
27
+ }),
27
28
  };
28
29
  mitosisNode.children = (0, children_1.parseChildren)(json, node);
29
30
  if (node.else) {
@@ -2,22 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseRawMustacheTag = exports.parseMustacheTag = void 0;
4
4
  var astring_1 = require("astring");
5
+ var bindings_1 = require("../../../helpers/bindings");
5
6
  var mitosis_node_1 = require("../helpers/mitosis-node");
6
7
  function parseMustacheTag(node) {
7
8
  var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
8
9
  mitosisNode.name = 'div';
9
- mitosisNode.bindings['_text'] = {
10
+ mitosisNode.bindings['_text'] = (0, bindings_1.createSingleBinding)({
10
11
  code: (0, astring_1.generate)(node.expression),
11
- };
12
+ });
12
13
  return mitosisNode;
13
14
  }
14
15
  exports.parseMustacheTag = parseMustacheTag;
15
16
  function parseRawMustacheTag(node) {
16
17
  var mitosisNode = (0, mitosis_node_1.createMitosisNode)();
17
18
  mitosisNode.name = 'div';
18
- mitosisNode.bindings.innerHTML = {
19
+ mitosisNode.bindings.innerHTML = (0, bindings_1.createSingleBinding)({
19
20
  code: (0, astring_1.generate)(node.expression),
20
- };
21
+ });
21
22
  return mitosisNode;
22
23
  }
23
24
  exports.parseRawMustacheTag = parseRawMustacheTag;