@builder.io/mitosis 0.0.74 → 0.0.76

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 (55) hide show
  1. package/dist/src/generators/angular.d.ts +2 -0
  2. package/dist/src/generators/angular.js +16 -5
  3. package/dist/src/generators/lit/generate.js +0 -3
  4. package/dist/src/generators/marko/generate.js +0 -3
  5. package/dist/src/generators/qwik/component-generator.js +9 -8
  6. package/dist/src/generators/qwik/directives.js +4 -0
  7. package/dist/src/generators/qwik/jsx.d.ts +1 -1
  8. package/dist/src/generators/qwik/jsx.js +5 -9
  9. package/dist/src/generators/react/generator.js +15 -11
  10. package/dist/src/generators/solid/index.js +24 -26
  11. package/dist/src/generators/stencil/generate.js +0 -3
  12. package/dist/src/generators/svelte/blocks.d.ts +10 -0
  13. package/dist/src/generators/svelte/blocks.js +188 -0
  14. package/dist/src/generators/svelte/helpers.d.ts +2 -0
  15. package/dist/src/generators/svelte/helpers.js +11 -0
  16. package/dist/src/generators/svelte/index.d.ts +1 -0
  17. package/dist/src/generators/svelte/index.js +5 -0
  18. package/dist/src/generators/svelte/svelte.d.ts +3 -0
  19. package/dist/src/generators/svelte/svelte.js +250 -0
  20. package/dist/src/generators/svelte/types.d.ts +4 -0
  21. package/dist/src/generators/svelte/types.js +2 -0
  22. package/dist/src/generators/vue/blocks.js +13 -23
  23. package/dist/src/generators/vue/compositionApi.js +23 -83
  24. package/dist/src/generators/vue/helpers.d.ts +10 -4
  25. package/dist/src/generators/vue/helpers.js +100 -18
  26. package/dist/src/generators/vue/optionsApi.js +6 -28
  27. package/dist/src/generators/vue/types.d.ts +5 -2
  28. package/dist/src/generators/vue/vue.d.ts +1 -4
  29. package/dist/src/generators/vue/vue.js +70 -49
  30. package/dist/src/helpers/is-children.js +3 -2
  31. package/dist/src/helpers/merge-options.d.ts +7 -0
  32. package/dist/src/helpers/merge-options.js +31 -0
  33. package/dist/src/helpers/plugins/process-code.d.ts +8 -0
  34. package/dist/src/helpers/plugins/process-code.js +69 -0
  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/replace-identifiers.js +18 -8
  38. package/dist/src/helpers/typescript.d.ts +1 -1
  39. package/dist/src/parsers/angular.js +4 -3
  40. package/dist/src/parsers/builder.d.ts +2 -2
  41. package/dist/src/parsers/jsx/ast.d.ts +2 -0
  42. package/dist/src/parsers/jsx/component-types.d.ts +2 -0
  43. package/dist/src/parsers/jsx/element-parser.d.ts +3 -1
  44. package/dist/src/parsers/jsx/exports.d.ts +4 -2
  45. package/dist/src/parsers/jsx/function-parser.d.ts +2 -0
  46. package/dist/src/parsers/jsx/helpers.d.ts +2 -0
  47. package/dist/src/parsers/jsx/imports.d.ts +2 -0
  48. package/dist/src/parsers/jsx/metadata.d.ts +2 -0
  49. package/dist/src/parsers/jsx/state.d.ts +2 -0
  50. package/dist/src/targets.d.ts +1 -1
  51. package/dist/src/types/mitosis-component.d.ts +8 -7
  52. package/dist/tsconfig.build.tsbuildinfo +1 -1
  53. package/package.json +3 -3
  54. package/dist/src/generators/svelte.d.ts +0 -14
  55. package/dist/src/generators/svelte.js +0 -455
@@ -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;
@@ -3,18 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.replaceIdentifiers = void 0;
4
4
  var core_1 = require("@babel/core");
5
5
  var babel_transform_1 = require("./babel-transform");
6
+ var checkShouldReplaceIdentifier = function (path) {
7
+ // Identifier should not be an (optional) property access - like `foo` in `this.foo` or `this?.foo`
8
+ var isPropertyAccess = (core_1.types.isMemberExpression(path.parent) || core_1.types.isOptionalMemberExpression(path.parent)) &&
9
+ path.parent.property === path.node;
10
+ if (isPropertyAccess) {
11
+ return false;
12
+ }
13
+ // Identifier should not be a function name - like `foo` in `function foo() {}`
14
+ var isFunctionName = core_1.types.isFunctionDeclaration(path.parent) && path.parent.id === path.node;
15
+ if (isFunctionName) {
16
+ return false;
17
+ }
18
+ return true;
19
+ };
6
20
  var replaceIdentifiers = function (_a) {
7
21
  var code = _a.code, from = _a.from, to = _a.to;
8
22
  return (0, babel_transform_1.babelTransformExpression)(code, {
9
23
  Identifier: function (path) {
10
- if (
11
- // This is not an (optional) property access - like `foo` in `this.foo` or `this?.foo`
12
- !((core_1.types.isMemberExpression(path.parent) ||
13
- core_1.types.isOptionalMemberExpression(path.parent)) &&
14
- path.parent.property === path.node) &&
15
- // This is no the function name - like `foo` in `function foo() {}`
16
- !(core_1.types.isFunctionDeclaration(path.parent) && path.parent.id === path.node) &&
17
- (Array.isArray(from) ? from.includes(path.node.name) : path.node.name === from)) {
24
+ var matchesFrom = Array.isArray(from)
25
+ ? from.includes(path.node.name)
26
+ : path.node.name === from;
27
+ if (checkShouldReplaceIdentifier(path) && matchesFrom) {
18
28
  path.replaceWith(core_1.types.identifier(typeof to === 'string' ? to : to(path.node.name)));
19
29
  }
20
30
  },
@@ -1,5 +1,5 @@
1
1
  export declare type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U;
2
- export declare type OmitObj<T, U> = U extends T ? Omit<T, keyof U> : never;
2
+ export declare type OmitObj<T, U> = T extends U ? Omit<T, keyof U> : never;
3
3
  export declare type Dictionary<T> = {
4
4
  [key: string]: T;
5
5
  };
@@ -126,9 +126,10 @@ var parseTypescript = function (code, options) {
126
126
  for (var _i = 0, _a = ast.statements; _i < _a.length; _i++) {
127
127
  var statement = _a[_i];
128
128
  if (typescript_1.default.isClassDeclaration(statement)) {
129
- if (statement.decorators) {
130
- for (var _b = 0, _c = statement.decorators; _b < _c.length; _b++) {
131
- var decorator = _c[_b];
129
+ var decorators = typescript_1.default.canHaveDecorators(statement) ? typescript_1.default.getDecorators(statement) : undefined;
130
+ if (decorators) {
131
+ for (var _b = 0, decorators_1 = decorators; _b < decorators_1.length; _b++) {
132
+ var decorator = decorators_1[_b];
132
133
  // TODO: proper reference tracing
133
134
  if (typescript_1.default.isCallExpression(decorator.expression))
134
135
  if (typescript_1.default.isIdentifier(decorator.expression.expression) &&
@@ -35,7 +35,7 @@ export declare const builderContentToMitosisComponent: (builderContent: BuilderC
35
35
  name: string;
36
36
  '@type': "@builder.io/mitosis/component";
37
37
  imports: import("..").MitosisImport[];
38
- exports?: import("..").MitosisExport | undefined;
38
+ exports?: import("..").MitosisExports | undefined;
39
39
  meta: JSONObject & {
40
40
  useMetadata?: JSONObject | undefined;
41
41
  };
@@ -70,7 +70,7 @@ export declare const builderContentToMitosisComponent: (builderContent: BuilderC
70
70
  '@type': "@builder.io/mitosis/component";
71
71
  name: string;
72
72
  imports: import("..").MitosisImport[];
73
- exports?: import("..").MitosisExport | undefined;
73
+ exports?: import("..").MitosisExports | undefined;
74
74
  meta: JSONObject & {
75
75
  useMetadata?: JSONObject | undefined;
76
76
  };
@@ -1,3 +1,5 @@
1
1
  import * as babel from '@babel/core';
2
2
  import { JSONOrNode } from '../../types/json';
3
+ declare const types: typeof babel.types;
3
4
  export declare const jsonToAst: (json: JSONOrNode) => babel.types.Expression;
5
+ export {};
@@ -1,6 +1,8 @@
1
1
  import * as babel from '@babel/core';
2
2
  import { Context } from './types';
3
+ declare const types: typeof babel.types;
3
4
  export declare const getPropsTypeRef: (node: babel.types.FunctionDeclaration, context: Context) => string | undefined;
4
5
  export declare const isTypeOrInterface: (node: babel.Node) => boolean;
5
6
  export declare const collectTypes: (node: babel.Node, context: Context) => void;
6
7
  export declare function handleTypeImports(path: babel.NodePath<babel.types.Program>, context: Context): void;
8
+ export {};
@@ -1,6 +1,8 @@
1
1
  import * as babel from '@babel/core';
2
2
  import { MitosisNode } from '../../types/mitosis-node';
3
+ declare const types: typeof babel.types;
3
4
  /**
4
5
  * Parses a JSX element into a MitosisNode.
5
6
  */
6
- export declare const jsxElementToJson: (node: babel.types.JSXElement | babel.types.JSXExpressionContainer | babel.types.JSXFragment | babel.types.JSXSpreadChild | babel.types.JSXText) => MitosisNode | null;
7
+ export declare const jsxElementToJson: (node: babel.types.JSXElement | babel.types.JSXText | babel.types.JSXFragment | babel.types.JSXExpressionContainer | babel.types.JSXSpreadChild) => MitosisNode | null;
8
+ export {};
@@ -1,3 +1,5 @@
1
1
  import * as babel from '@babel/core';
2
- import { MitosisExport } from '../../types/mitosis-component';
3
- export declare const generateExports: (path: babel.NodePath<babel.types.Program>) => MitosisExport;
2
+ import { MitosisExports } from '../../types/mitosis-component';
3
+ declare const types: typeof babel.types;
4
+ export declare const generateExports: (path: babel.NodePath<babel.types.Program>) => MitosisExports;
5
+ export {};
@@ -2,9 +2,11 @@ import * as babel from '@babel/core';
2
2
  import { JSONOrNode } from '../../types/json';
3
3
  import { MitosisComponent } from '../../types/mitosis-component';
4
4
  import { Context } from './types';
5
+ declare const types: typeof babel.types;
5
6
  export declare function generateUseStyleCode(expression: babel.types.CallExpression): string;
6
7
  export declare function parseDefaultPropsHook(component: MitosisComponent, expression: babel.types.CallExpression): void;
7
8
  /**
8
9
  * Parses function declarations within the Mitosis copmonent's body to JSON
9
10
  */
10
11
  export declare const componentFunctionToJson: (node: babel.types.FunctionDeclaration, context: Context) => JSONOrNode;
12
+ export {};
@@ -1,5 +1,7 @@
1
1
  import * as babel from '@babel/core';
2
+ declare const types: typeof babel.types;
2
3
  export declare const selfClosingTags: Set<string>;
3
4
  export declare const uncapitalize: (str: string) => string;
4
5
  export declare const parseCodeJson: (node: babel.types.Node) => any;
5
6
  export declare const isImportOrDefaultExport: (node: babel.Node) => boolean;
7
+ export {};
@@ -1,7 +1,9 @@
1
1
  import * as babel from '@babel/core';
2
2
  import { Context, ParseMitosisOptions } from './types';
3
+ declare const types: typeof babel.types;
3
4
  export declare const handleImportDeclaration: ({ options, path, context, }: {
4
5
  options: Partial<ParseMitosisOptions>;
5
6
  path: babel.NodePath<babel.types.ImportDeclaration>;
6
7
  context: Context;
7
8
  }) => void;
9
+ export {};
@@ -1,6 +1,7 @@
1
1
  import * as babel from '@babel/core';
2
2
  import { MitosisComponent } from '../../types/mitosis-component';
3
3
  import { ParseMitosisOptions } from './types';
4
+ declare const types: typeof babel.types;
4
5
  export declare const METADATA_HOOK_NAME = "useMetadata";
5
6
  /**
6
7
  * Transform useMetadata({...}) onto the component JSON as
@@ -10,3 +11,4 @@ export declare const METADATA_HOOK_NAME = "useMetadata";
10
11
  * the returned nodes array
11
12
  */
12
13
  export declare const collectMetadata: (nodes: babel.types.Statement[], component: MitosisComponent, options: ParseMitosisOptions) => babel.types.Statement[];
14
+ export {};
@@ -1,6 +1,7 @@
1
1
  import * as babel from '@babel/core';
2
2
  import { MitosisComponent } from '../../types/mitosis-component';
3
3
  import { JSONObject } from '../../types/json';
4
+ declare const types: typeof babel.types;
4
5
  /**
5
6
  * Convert state identifiers from React hooks format to the state.* format Mitosis needs
6
7
  * e.g.
@@ -10,3 +11,4 @@ import { JSONObject } from '../../types/json';
10
11
  export declare function mapStateIdentifiers(json: MitosisComponent): void;
11
12
  export declare const parseStateObject: (object: babel.types.ObjectExpression) => JSONObject;
12
13
  export declare const parseStateObjectToMitosisState: (object: babel.types.ObjectExpression) => import("../../types/mitosis-component").MitosisState;
14
+ export {};
@@ -8,7 +8,7 @@ export declare const targets: {
8
8
  readonly react: import(".").TranspilerGenerator<import("./generators/react").ToReactOptions, string>;
9
9
  readonly reactNative: import(".").TranspilerGenerator<import("./generators/react-native").ToReactNativeOptions, string>;
10
10
  readonly solid: import(".").TranspilerGenerator<Partial<import("./generators/solid/types").ToSolidOptions>, string>;
11
- readonly svelte: import(".").TranspilerGenerator<import("./generators/svelte").ToSvelteOptions, string>;
11
+ readonly svelte: import(".").TranspilerGenerator<import("./generators/svelte/types").ToSvelteOptions, string>;
12
12
  readonly swift: import(".").TranspilerGenerator<import(".").BaseTranspilerOptions, string>;
13
13
  readonly template: import(".").TranspilerGenerator<import("./generators/template").ToTemplateOptions, string>;
14
14
  readonly webcomponent: import(".").TranspilerGenerator<import("./generators/html").ToHtmlOptions, string>;
@@ -51,13 +51,14 @@ export declare type MitosisComponentInput = {
51
51
  name: string;
52
52
  defaultValue: any;
53
53
  };
54
- export declare type MitosisExport = {
55
- [name: string]: {
56
- code: string;
57
- usedInLocal?: boolean;
58
- isFunction?: boolean;
59
- };
54
+ export declare type MitosisExports = {
55
+ [name: string]: MitosisExport;
60
56
  };
57
+ export interface MitosisExport {
58
+ code: string;
59
+ usedInLocal?: boolean;
60
+ isFunction?: boolean;
61
+ }
61
62
  export declare type StateValueType = 'function' | 'getter' | 'method' | 'property';
62
63
  export declare type StateCode = _JSON;
63
64
  declare type CodeValue = {
@@ -74,7 +75,7 @@ export declare type MitosisComponent = {
74
75
  '@type': '@builder.io/mitosis/component';
75
76
  name: string;
76
77
  imports: MitosisImport[];
77
- exports?: MitosisExport;
78
+ exports?: MitosisExports;
78
79
  meta: JSONObject & {
79
80
  useMetadata?: JSONObject;
80
81
  };