import type { Stats } from 'fs-extra'; export interface DeepReadingNode { /** 文件名 xxx.js */ name: string; /** 文件元信息 */ stats: Stats; /** 遍历的顶层路径 */ source: string; /** 文件相对于顶层的路径 */ offset: string; /** 文件的绝对路径 */ current: string; } export type DeepReadingFilter = (node: DeepReadingNode) => boolean | Promise; export type DeepReadingHandler = (node: DeepReadingNode) => void | Promise; export interface DeepReadingOptions { /** 需要扫描的代码路径 */ source: string; /** 处理文件 */ handler: DeepReadingHandler; /** 过滤文件(为 true 才执行,否则跳过) */ filter?: DeepReadingFilter; /** 是否包括文件夹(为 true 则会将文件夹交给 handler) */ includeDir?: boolean; } /** * 深度遍历读取各个文件的信息 * * - 不会读取文件夹的信息 */ export declare function deepRead({ source, handler, filter }: DeepReadingOptions): Promise; /** * 获取文件导出的信息(支持 ts、tsx、js、mjs、json 文件) * * @param source 指定要读取的路径 * @param strict 启用严格模式(严格模式:如果获取不到就报错退出) * @param expireTime 指定缓存过期时间(设为 0,则长期有效) */ export declare function readExports(source: string, strict?: boolean, expireTime?: number): Promise; /** * 获取文件导出的信息(支持 js、mjs、json 文件) * * @param source 指定要读取的路径 * @param strict 启用严格模式(严格模式:如果获取不到就报错退出) */ export declare function readExportsSync(source: string, strict?: boolean): any;