@vue/babel-plugin-jsx
Version:
Babel plugin for Vue 3 JSX
34 lines (33 loc) • 1.22 kB
TypeScript
import { Options } from "@vue/babel-plugin-resolve-type";
import { File, PluginAPI, PluginObject, PluginPass } from "@babel/core";
//#region src/interface.d.ts
type State = {
get: (name: string) => any;
set: (name: string, value: any) => any;
opts: VueJSXPluginOptions;
file: File;
};
interface VueJSXPluginOptions {
/** transform `on: { click: xx }` to `onClick: xxx` */
transformOn?: boolean;
/** enable optimization or not. */
optimize?: boolean;
/** merge static and dynamic class / style attributes / onXXX handlers */
mergeProps?: boolean;
/** configuring custom elements */
isCustomElement?: (tag: string) => boolean;
/** enable object slots syntax */
enableObjectSlots?: boolean;
/** Replace the function used when compiling JSX expressions */
pragma?: string;
/**
* (**Experimental**) Infer component metadata from types (e.g. `props`, `emits`, `name`)
* @default false
*/
resolveType?: Options | boolean;
}
//#endregion
//#region src/index.d.ts
declare const plugin: (api: PluginAPI, options: VueJSXPluginOptions, dirname: string) => PluginObject<State & PluginPass>;
//#endregion
export { type VueJSXPluginOptions, plugin as default, plugin as "module.exports" };