//#region src/types.d.ts /** * 基于文件路径解析 */ type CustomFallbackParser = (id: string) => Promise | T | undefined; /** * 基于文件文本解析 */ interface CustomCodeParser { type: 'code'; parser: (code: string, id: string) => Promise | T | undefined; } /** * 基于文件路径解析 */ interface CustomIdParser { type: 'id'; parser: (id: string) => Promise | T | undefined; } /** * 自定义文件解析 */ type CustomParser = CustomCodeParser | CustomIdParser | CustomFallbackParser; /** * 配置文件解析规则配置 */ interface ESConfLayer { name?: string; /** * 配置文件文件名称 */ files: string[]; /** * 配置文件匹配文件后缀名 */ extensions: string[]; /** * 配置文件解析规则 */ parser: CustomParser; /** * 是否在配置文件解析发生错误时抛出错误 * @default false */ throwOnError?: boolean; } type Preset = ESConfLayer[]; interface ESConfOptions { /** * 一个 layer 预设 */ presets?: Preset[]; /** * 配置文件解析规则配置 */ layers?: ESConfLayer[]; /** * 解析配置文件根文件夹 * @default process.cwd() */ cwd?: string; /** * 默认数据 */ default?: T; /** * 排除某些 layer */ excludeLayer?: string[] | ((layer: ESConfLayer) => boolean); } /** * @inner */ interface ResolveESConfOptions extends Required, 'default' | 'presets' | 'layers'>> { /** * 默认数据 */ default?: T; layers: ESConfLayer[]; } /** * 解析的配置文件数据 */ interface LoadESConfResultLayer { /** * 解析到配置文件的路径 */ name: string; /** * 解析到的模块数据 */ config?: T; } /** * 配置导入结果 */ interface LoadESConfResult { /** * 合并配置文件结果 */ config: T; /** * 所有解析的配置文件数据 */ layers: LoadESConfResultLayer[]; } //#endregion //#region src/loadConfig.d.ts declare const loadConfig: (option: ESConfOptions) => Promise>; //#endregion //#region src/helper.d.ts declare const defineParser: (o: (o?: O) => CustomParser) => (o?: O) => CustomParser; declare const defineCodeParser: (o: (o?: O) => CustomCodeParser['parser']) => ((o?: O) => CustomCodeParser); declare const defineIdParser: (o: (o?: O) => CustomIdParser['parser']) => ((o?: O) => CustomIdParser); declare const defineLayer: (o: (o: O) => ESConfLayer) => (o: O) => ESConfLayer; //#endregion export { CustomCodeParser, CustomFallbackParser, CustomIdParser, CustomParser, ESConfLayer, ESConfOptions, LoadESConfResult, LoadESConfResultLayer, Preset, ResolveESConfOptions, defineCodeParser, defineIdParser, defineLayer, defineParser, loadConfig };