@vue-jsx-vapor/macros
Version:
Macros for Vue JSX Vapor
43 lines (42 loc) • 1.33 kB
TypeScript
import { FilterPattern } from "unplugin";
//#region src/options.d.ts
interface BaseOptions {
include?: FilterPattern;
exclude?: FilterPattern;
version?: number;
isProduction?: boolean;
}
type MarkRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
type DefineComponentOptions = {
alias?: string[];
autoReturnFunction?: boolean;
};
type DefineModelOptions = {
alias?: string[];
};
type DefineExposeOptions = {
alias?: string[];
};
type DefineSlotsOptions = {
alias?: string[];
};
type DefineStyleOptions = {
alias?: string[];
};
type Options = BaseOptions & {
defineComponent?: DefineComponentOptions;
defineModel?: DefineModelOptions;
defineExpose?: DefineExposeOptions;
defineSlots?: DefineSlotsOptions;
defineStyle?: DefineStyleOptions;
};
type OptionsResolved = MarkRequired<Options, 'include' | 'version'> & {
defineComponent: MarkRequired<DefineComponentOptions, 'alias'>;
defineModel: MarkRequired<DefineModelOptions, 'alias'>;
defineExpose: MarkRequired<DefineExposeOptions, 'alias'>;
defineSlots: MarkRequired<DefineSlotsOptions, 'alias'>;
defineStyle: MarkRequired<DefineStyleOptions, 'alias'>;
};
declare function resolveOptions(options: Options): OptionsResolved;
//#endregion
export { resolveOptions as i, Options as n, OptionsResolved as r, BaseOptions as t };