autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
57 lines (56 loc) • 1.75 kB
TypeScript
/**
* 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;
}