@builder.io/mitosis 0.0.72-5 → 0.0.73

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.
@@ -46,7 +46,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
46
46
  return (mod && mod.__esModule) ? mod : { "default": mod };
47
47
  };
48
48
  Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.componentFunctionToJson = void 0;
49
+ exports.componentFunctionToJson = exports.parseDefaultPropsHook = exports.generateUseStyleCode = void 0;
50
50
  var babel = __importStar(require("@babel/core"));
51
51
  var generator_1 = __importDefault(require("@babel/generator"));
52
52
  var trace_reference_to_module_path_1 = require("../../helpers/trace-reference-to-module-path");
@@ -58,18 +58,37 @@ var helpers_1 = require("./helpers");
58
58
  var component_types_1 = require("./component-types");
59
59
  var element_parser_1 = require("./element-parser");
60
60
  var types = babel.types;
61
+ function generateUseStyleCode(expression) {
62
+ return (0, generator_1.default)(expression.arguments[0]).code.replace(/(^("|'|`)|("|'|`)$)/g, '');
63
+ }
64
+ exports.generateUseStyleCode = generateUseStyleCode;
65
+ function parseDefaultPropsHook(component, expression) {
66
+ var _a;
67
+ var firstArg = expression.arguments[0];
68
+ if (types.isObjectExpression(firstArg)) {
69
+ var objectProperties = (_a = firstArg.properties) === null || _a === void 0 ? void 0 : _a.filter(function (i) { return types.isObjectProperty(i); });
70
+ objectProperties === null || objectProperties === void 0 ? void 0 : objectProperties.forEach(function (i) {
71
+ var _a;
72
+ var _b, _c, _d;
73
+ if ((_b = i.key) === null || _b === void 0 ? void 0 : _b.name) {
74
+ component.defaultProps = __assign(__assign({}, ((_c = component.defaultProps) !== null && _c !== void 0 ? _c : {})), (_a = {}, _a[(_d = i.key) === null || _d === void 0 ? void 0 : _d.name] = i.value.value, _a));
75
+ }
76
+ });
77
+ }
78
+ }
79
+ exports.parseDefaultPropsHook = parseDefaultPropsHook;
61
80
  /**
62
81
  * Parses function declarations within the Mitosis copmonent's body to JSON
63
82
  */
64
83
  var componentFunctionToJson = function (node, context) {
65
- var _a, _b;
84
+ var _a;
66
85
  var hooks = {};
67
86
  var state = {};
68
87
  var accessedContext = {};
69
88
  var setContext = {};
70
89
  var refs = {};
71
- for (var _i = 0, _c = node.body.body; _i < _c.length; _i++) {
72
- var item = _c[_i];
90
+ for (var _i = 0, _b = node.body.body; _i < _b.length; _i++) {
91
+ var item = _b[_i];
73
92
  if (types.isExpressionStatement(item)) {
74
93
  var expression = item.expression;
75
94
  if (types.isCallExpression(expression)) {
@@ -172,22 +191,10 @@ var componentFunctionToJson = function (node, context) {
172
191
  }
173
192
  }
174
193
  else if (expression.callee.name === hooks_1.HOOKS.DEFAULT_PROPS) {
175
- var firstArg = expression.arguments[0];
176
- if (types.isObjectExpression(firstArg)) {
177
- var objectProperties = (_a = firstArg.properties) === null || _a === void 0 ? void 0 : _a.filter(function (i) {
178
- return types.isObjectProperty(i);
179
- });
180
- objectProperties === null || objectProperties === void 0 ? void 0 : objectProperties.forEach(function (i) {
181
- var _a;
182
- var _b, _c, _d;
183
- if ((_b = i.key) === null || _b === void 0 ? void 0 : _b.name) {
184
- context.builder.component.defaultProps = __assign(__assign({}, ((_c = context.builder.component.defaultProps) !== null && _c !== void 0 ? _c : {})), (_a = {}, _a[(_d = i.key) === null || _d === void 0 ? void 0 : _d.name] = i.value.value, _a));
185
- }
186
- });
187
- }
194
+ parseDefaultPropsHook(context.builder.component, expression);
188
195
  }
189
196
  else if (expression.callee.name === hooks_1.HOOKS.STYLE) {
190
- context.builder.component.style = (0, generator_1.default)(expression.arguments[0]).code.replace(/(^("|'|`)|("|'|`)$)/g, '');
197
+ context.builder.component.style = generateUseStyleCode(expression);
191
198
  }
192
199
  }
193
200
  }
@@ -294,7 +301,7 @@ var componentFunctionToJson = function (node, context) {
294
301
  context.builder.component.exports = localExports;
295
302
  }
296
303
  var propsTypeRef = (0, component_types_1.getPropsTypeRef)(node, context);
297
- return (0, create_mitosis_component_1.createMitosisComponent)(__assign(__assign({}, context.builder.component), { name: (_b = node.id) === null || _b === void 0 ? void 0 : _b.name, state: state, children: children, refs: refs, hooks: hooks, context: {
304
+ return (0, create_mitosis_component_1.createMitosisComponent)(__assign(__assign({}, context.builder.component), { name: (_a = node.id) === null || _a === void 0 ? void 0 : _a.name, state: state, children: children, refs: refs, hooks: hooks, context: {
298
305
  get: accessedContext,
299
306
  set: setContext,
300
307
  }, propsTypeRef: propsTypeRef }));
@@ -25,6 +25,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.collectMetadata = exports.METADATA_HOOK_NAME = void 0;
27
27
  var babel = __importStar(require("@babel/core"));
28
+ var hooks_1 = require("../../constants/hooks");
29
+ var function_parser_1 = require("./function-parser");
28
30
  var helpers_1 = require("./helpers");
29
31
  var types = babel.types;
30
32
  var getHook = function (node) {
@@ -54,14 +56,23 @@ var collectMetadata = function (nodes, component, options) {
54
56
  if (!hook) {
55
57
  return true;
56
58
  }
57
- if (types.isIdentifier(hook.callee) && hookNames.has(hook.callee.name)) {
58
- try {
59
- component.meta[hook.callee.name] = (0, helpers_1.parseCodeJson)(hook.arguments[0]);
59
+ if (types.isIdentifier(hook.callee)) {
60
+ if (hookNames.has(hook.callee.name)) {
61
+ try {
62
+ component.meta[hook.callee.name] = (0, helpers_1.parseCodeJson)(hook.arguments[0]);
63
+ return false;
64
+ }
65
+ catch (e) {
66
+ console.error("Error parsing metadata hook ".concat(hook.callee.name));
67
+ throw e;
68
+ }
69
+ }
70
+ else if (hook.callee.name === hooks_1.HOOKS.STYLE) {
71
+ component.style = (0, function_parser_1.generateUseStyleCode)(hook);
60
72
  return false;
61
73
  }
62
- catch (e) {
63
- console.error("Error parsing metadata hook ".concat(hook.callee.name));
64
- throw e;
74
+ else if (hook.callee.name === hooks_1.HOOKS.DEFAULT_PROPS) {
75
+ (0, function_parser_1.parseDefaultPropsHook)(component, hook);
65
76
  }
66
77
  }
67
78
  return true;
@@ -85,7 +85,7 @@ function mapStateIdentifiers(json) {
85
85
  }
86
86
  }
87
87
  (0, traverse_1.default)(json).forEach(function (item) {
88
- var _a;
88
+ var _a, _b;
89
89
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
90
90
  for (var key in item.bindings) {
91
91
  var value = item.bindings[key];
@@ -96,6 +96,9 @@ function mapStateIdentifiers(json) {
96
96
  if ((_a = value.arguments) === null || _a === void 0 ? void 0 : _a.length) {
97
97
  item.bindings[key].arguments = value.arguments;
98
98
  }
99
+ if ((_b = value.type) === null || _b === void 0 ? void 0 : _b.length) {
100
+ item.bindings[key].type = value.type;
101
+ }
99
102
  }
100
103
  }
101
104
  if (item.bindings.className) {
@@ -1,4 +1,9 @@
1
1
  import { JSONObject } from './json';
2
+ export declare type Binding = {
3
+ code: string;
4
+ arguments?: string[];
5
+ type?: 'spread';
6
+ };
2
7
  export declare type BaseNode = {
3
8
  '@type': '@builder.io/mitosis/node';
4
9
  meta: JSONObject;
@@ -29,10 +34,7 @@ export declare type BaseNode = {
29
34
  * ```
30
35
  */
31
36
  bindings: {
32
- [key: string]: {
33
- code: string;
34
- arguments?: string[];
35
- } | undefined;
37
+ [key: string]: Binding | undefined;
36
38
  };
37
39
  children: MitosisNode[];
38
40
  };