export type MemberTransformer = /** 帕斯卡拼写法(大驼峰): 所有单词的首字母大写,然后直接连接起来,单词之间没有连接符 */ 'pascal_case' | 'camel_case' | 'kebab_case' | 'dashed_case' | 'snake_case' | 'upper_case' | 'upper_first' | 'lower_case' | 'lower_first'; export interface TransformerOption { /** * 要使用的库名称,而不是导入语句中指定的库名称。`${member}` 是替换的成员 */ transform: string; /** * 设置转换时需要单独导入的样式,`${member}` 是替换的成员 * @default false */ style?: string | boolean; /** * 当设置为true时,将保留 `import { Button }` 语法,而不是转换为 `import Button` * @default false */ skipDefaultConversion?: boolean; /** * 当遇到会导致导入整个模块时,是否抛出 * @default true */ preventFullImport?: boolean; /** * `${member}` 成员转换规则 * @default [] */ memberTransformers?: MemberTransformer[]; } /** * 引入语法转换 * @example * ```javascript * // 案例 * const conf = { * importOnDemand: { * antd: { * transform: 'lib/${member}', * skipDefaultConversion: false, * preventFullImport: true, * style: 'lib/${member}/style', * memberTransformers: ['dashed_case'], * }, * lodash: { * transform: '${member}', * preventFullImport: true, * }, * }, * }; * // 以下代码将会按照预期进行转换 * import { Button as MyButton, BackTop } from "antd"; * import { merge } from "lodash"; * // to * import MyButton from "antd/lib/button"; * import BackTop from "antd/lib/back-top"; * import "antd/lib/back-top/style"; * import "antd/lib/button/style"; * import merge from "lodash/merge"; * ``` */ export type SwcImportOnDemandTransform = Record; export declare function swcImportOnDemandConfig(config: SwcImportOnDemandTransform): SwcImportOnDemandTransform;