UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

57 lines (56 loc) 1.75 kB
/** * GraphCache — 基于文件的图数据持久化缓存 * * 功能: * 1. 将图数据序列化为 JSON 写入磁盘 * 2. 基于 contentHash 判断缓存是否有效(Package.swift / 源文件) * 3. 支持 SPM 依赖图和 AST ProjectGraph 两种场景 * * 缓存位置: {projectRoot}/.autosnippet/cache/ */ export declare class GraphCache { #private; /** @param projectRoot 项目根目录 */ constructor(projectRoot: string); /** * 保存缓存 * @param key 缓存键名(生成 {key}.json) * @param data 要缓存的数据 * @param meta 元信息(含 hash、timestamp 等) */ save(key: string, data: unknown, meta?: Record<string, unknown>): void; /** * 加载缓存 * @param key 缓存键名 * @returns | null} */ load(key: string): any; /** * 检查缓存是否有效(hash 匹配) * @param key 缓存键 * @param currentHash 当前内容的 hash */ isValid(key: string, currentHash: string): boolean; /** 删除缓存 */ invalidate(key: string): void; /** * 计算文件内容 hash * @param filePath 文件绝对路径 * @returns sha256 hex (前 16 字符) */ computeFileHash(filePath: string): string; /** * 计算字符串内容 hash * @returns sha256 hex (前 16 字符) */ computeContentHash(content: string): string; /** * 批量计算文件 hash 映射 * @param filePaths 文件绝对路径数组 * @param projectRoot 项目根目录 * @returns { relativePath: hash } */ computeFileHashes(filePaths: string[], projectRoot: string): Record<string, string>; /** 获取缓存目录路径 */ getCacheDir(): string; }