@builder.io/mitosis 0.0.75 → 0.0.77-0

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 (52) hide show
  1. package/dist/src/generators/alpine/generate.d.ts +20 -0
  2. package/dist/src/generators/alpine/generate.js +207 -0
  3. package/dist/src/generators/alpine/index.d.ts +1 -0
  4. package/dist/src/generators/alpine/index.js +17 -0
  5. package/dist/src/generators/alpine/render-mount-hook.d.ts +2 -0
  6. package/dist/src/generators/alpine/render-mount-hook.js +14 -0
  7. package/dist/src/generators/alpine/render-update-hooks.d.ts +5 -0
  8. package/dist/src/generators/alpine/render-update-hooks.js +44 -0
  9. package/dist/src/generators/angular.d.ts +2 -3
  10. package/dist/src/generators/angular.js +89 -97
  11. package/dist/src/generators/helpers/functions.js +2 -1
  12. package/dist/src/generators/html.js +1 -1
  13. package/dist/src/generators/qwik/component-generator.js +8 -1
  14. package/dist/src/generators/svelte/blocks.js +19 -21
  15. package/dist/src/generators/svelte/helpers.d.ts +5 -1
  16. package/dist/src/generators/svelte/helpers.js +8 -5
  17. package/dist/src/generators/svelte/svelte.js +34 -31
  18. package/dist/src/generators/swift-ui.js +1 -1
  19. package/dist/src/generators/vue/blocks.js +4 -2
  20. package/dist/src/generators/vue/compositionApi.js +3 -1
  21. package/dist/src/generators/vue/helpers.d.ts +2 -2
  22. package/dist/src/generators/vue/helpers.js +13 -5
  23. package/dist/src/generators/vue/optionsApi.js +0 -5
  24. package/dist/src/generators/vue/vue.js +4 -26
  25. package/dist/src/helpers/babel-transform.d.ts +2 -1
  26. package/dist/src/helpers/babel-transform.js +16 -19
  27. package/dist/src/helpers/get-state-object-string.d.ts +1 -1
  28. package/dist/src/helpers/get-state-object-string.js +5 -5
  29. package/dist/src/helpers/has-bindings-text.js +1 -1
  30. package/dist/src/helpers/is-children.d.ts +4 -1
  31. package/dist/src/helpers/is-children.js +5 -4
  32. package/dist/src/helpers/patterns.d.ts +1 -0
  33. package/dist/src/helpers/patterns.js +3 -1
  34. package/dist/src/helpers/plugins/process-code.js +1 -1
  35. package/dist/src/helpers/render-imports.d.ts +11 -3
  36. package/dist/src/helpers/render-imports.js +18 -4
  37. package/dist/src/helpers/styles/helpers.d.ts +0 -1
  38. package/dist/src/helpers/traverse-nodes.d.ts +1 -1
  39. package/dist/src/helpers/traverse-nodes.js +3 -3
  40. package/dist/src/index.d.ts +1 -1
  41. package/dist/src/index.js +2 -3
  42. package/dist/src/parsers/builder.d.ts +4 -4
  43. package/dist/src/parsers/jsx/function-parser.js +8 -0
  44. package/dist/src/parsers/jsx/metadata.js +17 -1
  45. package/dist/src/parsers/jsx/state.js +6 -1
  46. package/dist/src/plugins/map-styles.js +1 -1
  47. package/dist/src/targets.d.ts +1 -0
  48. package/dist/src/targets.js +2 -0
  49. package/dist/src/types/mitosis-component.d.ts +4 -8
  50. package/dist/tsconfig.build.tsbuildinfo +1 -1
  51. package/jsx-runtime.d.ts +2 -0
  52. package/package.json +9 -10
@@ -95,7 +95,7 @@ var getImportValue = function (_a) {
95
95
  }
96
96
  };
97
97
  var renderImport = function (_a) {
98
- var theImport = _a.theImport, target = _a.target, asyncComponentImports = _a.asyncComponentImports, _b = _a.preserveFileExtensions, preserveFileExtensions = _b === void 0 ? false : _b;
98
+ var theImport = _a.theImport, target = _a.target, asyncComponentImports = _a.asyncComponentImports, _b = _a.preserveFileExtensions, preserveFileExtensions = _b === void 0 ? false : _b, _c = _a.component, component = _c === void 0 ? undefined : _c, _d = _a.componentsUsed, componentsUsed = _d === void 0 ? [] : _d, importMapper = _a.importMapper;
99
99
  var importedValues = getImportedValues({ theImport: theImport });
100
100
  var path = transformImportPath(theImport, target, preserveFileExtensions);
101
101
  var importValue = getImportValue(importedValues);
@@ -115,11 +115,14 @@ var renderImport = function (_a) {
115
115
  return "const ".concat(importValue, " = () => import('").concat(path, "')\n .then(x => x.default)\n .catch(err => { \n console.error('Error while attempting to dynamically import component ").concat(importValue, " at ").concat(path, "', err);\n throw err;\n });");
116
116
  }
117
117
  }
118
+ if (importMapper) {
119
+ return importMapper(component, theImport, importedValues, componentsUsed);
120
+ }
118
121
  return importValue ? "import ".concat(importValue, " from '").concat(path, "';") : "import '".concat(path, "';");
119
122
  };
120
123
  exports.renderImport = renderImport;
121
124
  var renderImports = function (_a) {
122
- var imports = _a.imports, target = _a.target, asyncComponentImports = _a.asyncComponentImports, excludeMitosisComponents = _a.excludeMitosisComponents, _b = _a.preserveFileExtensions, preserveFileExtensions = _b === void 0 ? false : _b;
125
+ var imports = _a.imports, target = _a.target, asyncComponentImports = _a.asyncComponentImports, excludeMitosisComponents = _a.excludeMitosisComponents, _b = _a.preserveFileExtensions, preserveFileExtensions = _b === void 0 ? false : _b, component = _a.component, componentsUsed = _a.componentsUsed, importMapper = _a.importMapper;
123
126
  return imports
124
127
  .filter(function (theImport) {
125
128
  if (
@@ -137,20 +140,31 @@ var renderImports = function (_a) {
137
140
  }
138
141
  })
139
142
  .map(function (theImport) {
140
- return (0, exports.renderImport)({ theImport: theImport, target: target, asyncComponentImports: asyncComponentImports, preserveFileExtensions: preserveFileExtensions });
143
+ return (0, exports.renderImport)({
144
+ theImport: theImport,
145
+ target: target,
146
+ asyncComponentImports: asyncComponentImports,
147
+ preserveFileExtensions: preserveFileExtensions,
148
+ component: component,
149
+ componentsUsed: componentsUsed,
150
+ importMapper: importMapper,
151
+ });
141
152
  })
142
153
  .join('\n');
143
154
  };
144
155
  exports.renderImports = renderImports;
145
156
  var renderPreComponent = function (_a) {
146
157
  var _b;
147
- var component = _a.component, target = _a.target, excludeMitosisComponents = _a.excludeMitosisComponents, _c = _a.asyncComponentImports, asyncComponentImports = _c === void 0 ? false : _c, _d = _a.preserveFileExtensions, preserveFileExtensions = _d === void 0 ? false : _d;
158
+ var component = _a.component, target = _a.target, excludeMitosisComponents = _a.excludeMitosisComponents, _c = _a.asyncComponentImports, asyncComponentImports = _c === void 0 ? false : _c, _d = _a.preserveFileExtensions, preserveFileExtensions = _d === void 0 ? false : _d, _e = _a.componentsUsed, componentsUsed = _e === void 0 ? [] : _e, importMapper = _a.importMapper;
148
159
  return "\n ".concat((0, exports.renderImports)({
149
160
  imports: component.imports,
150
161
  target: target,
151
162
  asyncComponentImports: asyncComponentImports,
152
163
  excludeMitosisComponents: excludeMitosisComponents,
153
164
  preserveFileExtensions: preserveFileExtensions,
165
+ component: component,
166
+ componentsUsed: componentsUsed,
167
+ importMapper: importMapper,
154
168
  }), "\n ").concat((0, exports.renderExportAndLocal)(component), "\n ").concat(((_b = component.hooks.preComponent) === null || _b === void 0 ? void 0 : _b.code) || '', "\n ");
155
169
  };
156
170
  exports.renderPreComponent = renderPreComponent;
@@ -1,4 +1,3 @@
1
- /// <reference types="lodash" />
2
1
  import * as CSS from 'csstype';
3
2
  import { MitosisNode } from '../../types/mitosis-node';
4
3
  import { MitosisComponent } from '../../types/mitosis-component';
@@ -1,4 +1,4 @@
1
1
  import { MitosisComponent } from '../types/mitosis-component';
2
2
  import { MitosisNode } from '../types/mitosis-node';
3
3
  import { TraverseContext } from 'traverse';
4
- export declare function tarverseNodes(component: MitosisComponent | MitosisNode, cb: (node: MitosisNode, context: TraverseContext) => void): void;
4
+ export declare function traverseNodes(component: MitosisComponent | MitosisNode, cb: (node: MitosisNode, context: TraverseContext) => void): void;
@@ -3,14 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.tarverseNodes = void 0;
6
+ exports.traverseNodes = void 0;
7
7
  var traverse_1 = __importDefault(require("traverse"));
8
8
  var is_mitosis_node_1 = require("./is-mitosis-node");
9
- function tarverseNodes(component, cb) {
9
+ function traverseNodes(component, cb) {
10
10
  (0, traverse_1.default)(component).forEach(function (item) {
11
11
  if ((0, is_mitosis_node_1.isMitosisNode)(item)) {
12
12
  cb(item, this);
13
13
  }
14
14
  });
15
15
  }
16
- exports.tarverseNodes = tarverseNodes;
16
+ exports.traverseNodes = traverseNodes;
@@ -21,7 +21,6 @@ export declare const setContext: <T = {
21
21
  }>(key: Context<T>, value: Partial<T>) => void;
22
22
  export declare const onMount: (fn: () => any) => any;
23
23
  export declare const onUpdate: (fn: () => any, deps?: any[]) => any;
24
- export declare const onCreate: (fn: () => any) => any;
25
24
  export declare const onInit: (fn: () => any) => any;
26
25
  export declare const onUnMount: (fn: () => any) => any;
27
26
  export declare const useDynamicTag: (fn: () => any) => any;
@@ -36,6 +35,7 @@ export * from './parsers/builder';
36
35
  export * from './parsers/angular';
37
36
  export * from './parsers/context';
38
37
  export * from './generators/vue';
38
+ export * from './generators/alpine';
39
39
  export * from './generators/angular';
40
40
  export * from './generators/context/react';
41
41
  export * from './generators/context/qwik';
package/dist/src/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.useStyle = exports.useDefaultProps = exports.useMetadata = exports.onError = exports.useDynamicTag = exports.onUnMount = exports.onInit = exports.onCreate = exports.onUpdate = exports.onMount = exports.setContext = exports.createContext = exports.useContext = exports.useRef = exports.useState = exports.useStore = void 0;
17
+ exports.useStyle = exports.useDefaultProps = exports.useMetadata = exports.onError = exports.useDynamicTag = exports.onUnMount = exports.onInit = exports.onUpdate = exports.onMount = exports.setContext = exports.createContext = exports.useContext = exports.useRef = exports.useState = exports.useStore = void 0;
18
18
  __exportStar(require("./flow"), exports);
19
19
  function Provider(props) {
20
20
  return null;
@@ -50,8 +50,6 @@ var onMount = function (fn) {
50
50
  exports.onMount = onMount;
51
51
  var onUpdate = function (fn, deps) { return null; };
52
52
  exports.onUpdate = onUpdate;
53
- var onCreate = function (fn) { return null; };
54
- exports.onCreate = onCreate;
55
53
  var onInit = function (fn) { return null; };
56
54
  exports.onInit = onInit;
57
55
  var onUnMount = function (fn) { return null; };
@@ -74,6 +72,7 @@ __exportStar(require("./parsers/builder"), exports);
74
72
  __exportStar(require("./parsers/angular"), exports);
75
73
  __exportStar(require("./parsers/context"), exports);
76
74
  __exportStar(require("./generators/vue"), exports);
75
+ __exportStar(require("./generators/alpine"), exports);
77
76
  __exportStar(require("./generators/angular"), exports);
78
77
  __exportStar(require("./generators/context/react"), exports);
79
78
  __exportStar(require("./generators/context/qwik"), exports);
@@ -42,8 +42,8 @@ export declare const builderContentToMitosisComponent: (builderContent: BuilderC
42
42
  inputs: import("..").MitosisComponentInput[];
43
43
  state: import("..").MitosisState;
44
44
  context: {
45
- get: import("..").ContextGet;
46
- set: import("..").ContextSet;
45
+ get: import("../helpers/typescript").Dictionary<import("..").ContextGetInfo>;
46
+ set: import("../helpers/typescript").Dictionary<import("..").ContextSetInfo>;
47
47
  };
48
48
  refs: {
49
49
  [useRef: string]: {
@@ -77,8 +77,8 @@ export declare const builderContentToMitosisComponent: (builderContent: BuilderC
77
77
  inputs: import("..").MitosisComponentInput[];
78
78
  state: import("..").MitosisState;
79
79
  context: {
80
- get: import("..").ContextGet;
81
- set: import("..").ContextSet;
80
+ get: import("../helpers/typescript").Dictionary<import("..").ContextGetInfo>;
81
+ set: import("../helpers/typescript").Dictionary<import("..").ContextSetInfo>;
82
82
  };
83
83
  refs: {
84
84
  [useRef: string]: {
@@ -57,6 +57,7 @@ var state_1 = require("./state");
57
57
  var helpers_1 = require("./helpers");
58
58
  var component_types_1 = require("./component-types");
59
59
  var element_parser_1 = require("./element-parser");
60
+ var metadata_1 = require("./metadata");
60
61
  var types = babel.types;
61
62
  function generateUseStyleCode(expression) {
62
63
  return (0, generator_1.default)(expression.arguments[0]).code.replace(/(^("|'|`)|("|'|`)$)/g, '');
@@ -196,6 +197,9 @@ var componentFunctionToJson = function (node, context) {
196
197
  else if (expression.callee.name === hooks_1.HOOKS.STYLE) {
197
198
  context.builder.component.style = generateUseStyleCode(expression);
198
199
  }
200
+ else if (expression.callee.name === metadata_1.METADATA_HOOK_NAME) {
201
+ context.builder.component.meta[metadata_1.METADATA_HOOK_NAME] = __assign(__assign({}, context.builder.component.meta[metadata_1.METADATA_HOOK_NAME]), (0, helpers_1.parseCodeJson)(expression.arguments[0]));
202
+ }
199
203
  }
200
204
  }
201
205
  }
@@ -233,6 +237,10 @@ var componentFunctionToJson = function (node, context) {
233
237
  type: 'property',
234
238
  };
235
239
  }
240
+ // Typescript Parameter
241
+ if (types.isTSTypeParameterInstantiation(init.typeParameters)) {
242
+ state[varName].typeParameter = (0, generator_1.default)(init.typeParameters.params[0]).code;
243
+ }
236
244
  }
237
245
  }
238
246
  // Legacy format, like:
@@ -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
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -59,7 +70,12 @@ var collectMetadata = function (nodes, component, options) {
59
70
  if (types.isIdentifier(hook.callee)) {
60
71
  if (hookNames.has(hook.callee.name)) {
61
72
  try {
62
- component.meta[hook.callee.name] = (0, helpers_1.parseCodeJson)(hook.arguments[0]);
73
+ if (component.meta[hook.callee.name]) {
74
+ component.meta[hook.callee.name] = __assign(__assign({}, component.meta[hook.callee.name]), (0, helpers_1.parseCodeJson)(hook.arguments[0]));
75
+ }
76
+ else {
77
+ component.meta[hook.callee.name] = (0, helpers_1.parseCodeJson)(hook.arguments[0]);
78
+ }
63
79
  return false;
64
80
  }
65
81
  catch (e) {
@@ -132,9 +132,14 @@ var createFunctionStringLiteralObjectProperty = function (key, node) {
132
132
  };
133
133
  var parseStateValue = function (item) {
134
134
  if (types.isObjectProperty(item)) {
135
- if (types.isFunctionExpression(item.value) || types.isArrowFunctionExpression(item.value)) {
135
+ if (types.isFunctionExpression(item.value)) {
136
136
  return createFunctionStringLiteralObjectProperty(item.key, item.value);
137
137
  }
138
+ else if (types.isArrowFunctionExpression(item.value)) {
139
+ // convert this to an object method instead
140
+ var n = babel.types.objectMethod('method', item.key, item.value.params, item.value.body);
141
+ return types.objectProperty(item.key, types.stringLiteral("".concat(outdated_prefixes_1.__DO_NOT_USE_METHOD_LITERAL_PREFIX).concat((0, generator_1.default)(n).code)));
142
+ }
138
143
  }
139
144
  if (types.isObjectMethod(item)) {
140
145
  return types.objectProperty(item.key, types.stringLiteral("".concat(outdated_prefixes_1.__DO_NOT_USE_METHOD_LITERAL_PREFIX).concat((0, generator_1.default)(__assign(__assign({}, item), { returnType: null })).code)));
@@ -6,7 +6,7 @@ var traverse_nodes_1 = require("../helpers/traverse-nodes");
6
6
  var mapStyles = function (pluginOptions) { return function (options) { return ({
7
7
  json: {
8
8
  pre: function (json) {
9
- (0, traverse_nodes_1.tarverseNodes)(json, function (node, context) {
9
+ (0, traverse_nodes_1.traverseNodes)(json, function (node, context) {
10
10
  var styles = (0, get_styles_1.getStyles)(node);
11
11
  (0, get_styles_1.setStyles)(node, pluginOptions.map(styles || {}, context));
12
12
  });
@@ -1,5 +1,6 @@
1
1
  export declare const builder: (options?: import("./generators/builder").ToBuilderOptions) => ({ component }: import(".").TranspilerArgs) => import("@builder.io/sdk").BuilderContent;
2
2
  export declare const targets: {
3
+ readonly alpine: import(".").TranspilerGenerator<import("./generators/alpine").ToAlpineOptions, string>;
3
4
  readonly angular: import(".").TranspilerGenerator<import("./generators/angular").ToAngularOptions, string>;
4
5
  readonly customElement: import(".").TranspilerGenerator<import("./generators/html").ToHtmlOptions, string>;
5
6
  readonly html: import(".").TranspilerGenerator<import("./generators/html").ToHtmlOptions, string>;
@@ -4,6 +4,7 @@ exports.targets = exports.builder = void 0;
4
4
  var angular_1 = require("./generators/angular");
5
5
  var builder_1 = require("./generators/builder");
6
6
  var html_1 = require("./generators/html");
7
+ var alpine_1 = require("./generators/alpine");
7
8
  var mitosis_1 = require("./generators/mitosis");
8
9
  var liquid_1 = require("./generators/liquid");
9
10
  var react_1 = require("./generators/react");
@@ -21,6 +22,7 @@ var lit_1 = require("./generators/lit");
21
22
  var rsc_1 = require("./generators/rsc");
22
23
  exports.builder = builder_1.componentToBuilder;
23
24
  exports.targets = {
25
+ alpine: alpine_1.componentToAlpine,
24
26
  angular: angular_1.componentToAngular,
25
27
  customElement: html_1.componentToCustomElement,
26
28
  html: html_1.componentToHtml,
@@ -37,12 +37,6 @@ export interface ContextSetInfo {
37
37
  value?: MitosisState;
38
38
  ref?: string;
39
39
  }
40
- export declare type ContextGet = {
41
- [key: string]: ContextGetInfo;
42
- };
43
- export declare type ContextSet = {
44
- [key: string]: ContextSetInfo;
45
- };
46
40
  export declare type extendedHook = {
47
41
  code: string;
48
42
  deps?: string;
@@ -64,11 +58,13 @@ export declare type StateCode = _JSON;
64
58
  declare type CodeValue = {
65
59
  code: string;
66
60
  type: Exclude<StateValueType, 'property'>;
61
+ typeParameter?: string;
67
62
  };
68
63
  export declare const checkIsCodeValue: (value: unknown) => value is CodeValue;
69
64
  export declare type StateValue = CodeValue | {
70
65
  code: StateCode;
71
66
  type: Extract<StateValueType, 'property'>;
67
+ typeParameter?: string;
72
68
  };
73
69
  export declare type MitosisState = Dictionary<StateValue | undefined>;
74
70
  export declare type MitosisComponent = {
@@ -82,8 +78,8 @@ export declare type MitosisComponent = {
82
78
  inputs: MitosisComponentInput[];
83
79
  state: MitosisState;
84
80
  context: {
85
- get: ContextGet;
86
- set: ContextSet;
81
+ get: Dictionary<ContextGetInfo>;
82
+ set: Dictionary<ContextSetInfo>;
87
83
  };
88
84
  refs: {
89
85
  [useRef: string]: {