UNPKG

@irim/bin-tool

Version:

node bin tools

81 lines (80 loc) 2.85 kB
/// <reference types="node" /> /** * 遍历文件目录,执行 callback * @param src 目录路径 * @param fileCallback 执行到文件时的回调,如果返回 false 或 async false,则遍历中止 * @param dirCallback 执行到目录时的回调 * @param exclude 忽略的文件 */ export declare function fileIterator(src: string, fileCallback: (filePath: string, fileRelativePath: string) => any, dirCallback?: (dirRelativePath: string) => any, exclude?: RegExp): Promise<any>; /** * 遍历文件目录,同步到目标目录,并对每一个文件执行 callback * @param source 源文件目录 * @param target 目标目录 * @param callback * @param exclude 忽略的文件规则 */ export declare function dirSyncIterator(source: string, target: string, callback: (sourceFile: string, targetFile: string) => any, exclude?: RegExp): Promise<any>; /** * 统计目录中的文件数量 * @param src 目录路径 * @param exclude 忽略的文件 */ export declare function getFileCount(src: string, exclude?: RegExp): Promise<number>; export interface OptionShape { /** 文件来源目录 */ src: string; /** 目标目录 */ dist: string; /** 文件内容替换规则 */ replacer?: { holder: RegExp; value: string; }[]; /** 忽略的文件 */ exclude?: RegExp; /** 只读文件(不读取&替换的文件) */ readonlyFile?: RegExp; /** 文件名替换方法 */ fileNameTransfer?: (name: string) => string; /** 文件内容格式化方法 */ contentFormatter?: (content: string, src: string) => Promise<string>; } /** * 复制文件目录 */ export declare function copyDir(options: OptionShape): Promise<any>; export interface ClearOptions { /** 要清除的目录 */ src: string; /** 是否有二次确认 */ confirm?: boolean; /** 二次确认文案 */ confirmText?: string; /** 忽略的文件 */ exclude?: RegExp; } export declare function clearDir(options: ClearOptions): Promise<boolean>; /** * 从目录中查找内容符合条件的文件 * @param src 文件目录 * @param callback 文件校验规则,传入参数是文件的内容 * @param options * @return */ export declare function findInFolder(src: string, callback: (filePath: string, content: string) => boolean, options?: { /** 是否找到所有文件,默认 false,即找到第 1 个就返回 */ all?: boolean; /** 如果指定了 include,则只处理匹配的文件 */ include?: RegExp; /** 匹配规则的文件跳过 */ exclude?: RegExp; /** 文件大小限制(byte),超过大小的文件不遍历 */ limit?: number; /** 读取文件的编码,默认是 utf-8 */ encoding?: BufferEncoding; }): Promise<{ filePath: string; fileRelativePath: string; fileSize: number; }[]>;