@builder.io/mitosis
Version:
Write components once, run everywhere. Compiles to Vue, React, Solid, and Liquid. Import code from Figma and Builder.io
49 lines (48 loc) • 1.48 kB
TypeScript
import { MitosisComponent } from './mitosis-component';
import { MitosisPlugin } from './plugins';
export interface TranspilerArgs {
path?: string;
component: MitosisComponent;
}
export type Transpiler<R = string> = (args: TranspilerArgs) => R;
/**
* This type guarantees that all code generators receive the same base options
*/
export type TranspilerGenerator<X extends BaseTranspilerOptions, Y = string> = (args?: X) => Transpiler<Y>;
export type AttributePassingType = {
enabled: boolean;
customRef?: string;
};
export interface BaseTranspilerOptions {
experimental?: {
[key: string]: any;
};
/**
* Runs `prettier` on generated components
*/
prettier?: boolean;
/**
* Mitosis Plugins to run during codegen.
*/
plugins?: MitosisPlugin[];
/**
* Enable `typescript` output
*/
typescript?: boolean;
/** Enables/disables attribute passing for frameworks with custom elements like angular and stencil */
attributePassing?: AttributePassingType;
/**
* Preserves explicit filename extensions in import statements.
*/
explicitImportFileExtension?: boolean;
/**
* Can be used for cli builds. Preserves explicit filename extensions when regex matches, e.g.:
* {
* explicitBuildFileExtension: {
* ".ts":/*.figma.lite.tsx/g,
* ".md":/*.docs.lite.tsx/g
* }
* }
*/
explicitBuildFileExtensions?: Record<string, RegExp>;
}