sdin
Version:
JavaScript package builder.
47 lines (46 loc) • 1.74 kB
TypeScript
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<boolean>;
export type DeepReadingHandler = (node: DeepReadingNode) => void | Promise<void>;
export interface DeepReadingOptions {
/** 需要扫描的代码路径 */
source: string;
/** 处理文件 */
handler: DeepReadingHandler;
/** 过滤文件(为 true 才执行,否则跳过) */
filter?: DeepReadingFilter;
/** 是否包括文件夹(为 true 则会将文件夹交给 handler) */
includeDir?: boolean;
}
/**
* 深度遍历读取各个文件的信息
*
* - 不会读取文件夹的信息
*/
export declare function deepRead({ source, handler, filter }: DeepReadingOptions): Promise<void>;
/**
* 获取文件导出的信息(支持 ts、tsx、js、mjs、json 文件)
*
* @param source 指定要读取的路径
* @param strict 启用严格模式(严格模式:如果获取不到就报错退出)
* @param expireTime 指定缓存过期时间(设为 0,则长期有效)
*/
export declare function readExports(source: string, strict?: boolean, expireTime?: number): Promise<any>;
/**
* 获取文件导出的信息(支持 js、mjs、json 文件)
*
* @param source 指定要读取的路径
* @param strict 启用严格模式(严格模式:如果获取不到就报错退出)
*/
export declare function readExportsSync(source: string, strict?: boolean): any;