UNPKG

koishi-plugin-best-cave

Version:

回声洞,可自由添加内容,可配置 MD5/pHash 查重,支持查阅投稿列表(可用但等待重构)

64 lines (63 loc) 1.81 kB
export declare class FileHandler { private static locks; private static readonly RETRY_COUNT; private static readonly RETRY_DELAY; private static readonly CONCURRENCY_LIMIT; /** * 并发控制 * @param operation 要执行的操作 * @param limit 并发限制 * @returns 操作结果 */ private static withConcurrencyLimit; /** * 文件操作包装器 * @param filePath 文件路径 * @param operation 要执行的操作 * @returns 操作结果 */ private static withFileOp; /** * 事务处理 * @param operations 要执行的操作数组 * @returns 操作结果数组 */ static withTransaction<T>(operations: Array<{ filePath: string; operation: () => Promise<T>; rollback?: () => Promise<void>; }>): Promise<T[]>; /** * 读取 JSON 数据 * @param filePath 文件路径 * @returns JSON 数据 */ static readJsonData<T>(filePath: string): Promise<T[]>; /** * 写入 JSON 数据 * @param filePath 文件路径 * @param data 要写入的数据 */ static writeJsonData<T>(filePath: string, data: T[]): Promise<void>; /** * 确保目录存在 * @param dir 目录路径 */ static ensureDirectory(dir: string): Promise<void>; /** * 确保 JSON 文件存在 * @param filePath 文件路径 */ static ensureJsonFile(filePath: string): Promise<void>; /** * 保存媒体文件 * @param filePath 文件路径 * @param data 文件数据 */ static saveMediaFile(filePath: string, data: Buffer | string): Promise<void>; /** * 删除媒体文件 * @param filePath 文件路径 */ static deleteMediaFile(filePath: string): Promise<void>; }