synthia-cache-system
Version:
Synthia Engine Cache System - 核心缓存系统实现,提供多级缓存、版本管理、性能监控等功能
338 lines (329 loc) • 8.13 kB
TypeScript
import { C as CacheProvider, a as CacheConfig, b as CacheMeta, c as CacheItem, d as CacheStats, e as CloudCacheProvider } from './cache-plugin-manager-DN8Y1tpu.js';
export { g as CacheManager, m as CacheManagerWithPlugins, j as CacheMetricsCollector, f as CacheOperation, k as CachePlugin, l as CachePluginManager, i as CacheStrategyManager, h as CacheVersionManager, S as SynthiaCacheManager } from './cache-plugin-manager-DN8Y1tpu.js';
declare class LocalCache implements CacheProvider {
private cacheDir;
private spinner;
private config;
private stats;
constructor(cacheDir?: string, config?: Partial<CacheConfig['local']>);
/**
* 设置缓存
*/
set(key: string, value: any, meta?: Partial<CacheMeta>): Promise<void>;
/**
* 获取缓存
*/
get(key: string): Promise<CacheItem | null>;
/**
* 删除缓存
*/
delete(key: string): Promise<void>;
/**
* 清空所有缓存
*/
clear(): Promise<void>;
/**
* 检查缓存是否存在
*/
has(key: string): Promise<boolean>;
/**
* 获取缓存统计信息
*/
getStats(): Promise<CacheStats>;
/**
* 获取所有缓存键
*/
keys(): Promise<string[]>;
/**
* 获取缓存大小
*/
size(): Promise<number>;
/**
* 获取缓存路径
*/
private getCachePath;
/**
* 确保缓存目录存在
*/
private ensureCacheDir;
/**
* 更新统计信息
*/
private updateStats;
/**
* 刷新统计信息
*/
private refreshStats;
/**
* 加载统计信息
*/
private loadStats;
/**
* 保存统计信息
*/
private saveStats;
/**
* 计算对象哈希
*/
private calculateObjectHash;
}
declare class CloudCache implements CloudCacheProvider {
private client;
private bucket;
private prefix;
private spinner;
constructor(config: CacheConfig['cloud']);
/**
* 获取缓存
*/
get(key: string): Promise<CacheItem | null>;
/**
* 设置缓存
*/
set(key: string, value: any, meta: Partial<CacheMeta>): Promise<void>;
/**
* 删除缓存
*/
delete(key: string): Promise<void>;
/**
* 清空缓存
*/
clear(): Promise<void>;
/**
* 检查缓存是否存在
*/
has(key: string): Promise<boolean>;
/**
* 获取缓存统计信息
*/
getStats(): Promise<CacheStats>;
/**
* 获取所有缓存键
*/
keys(): Promise<string[]>;
/**
* 获取缓存大小
*/
size(): Promise<number>;
/**
* 同步到云端
*/
sync(key: string): Promise<void>;
/**
* 从云端拉取
*/
pull(key: string): Promise<CacheItem | null>;
/**
* 批量同步
*/
batchSync(keys: string[]): Promise<void>;
/**
* 获取对象键
*/
private getObjectKey;
/**
* 从对象键提取缓存键
*/
private extractKeyFromObjectKey;
/**
* 计算哈希值
*/
private calculateHash;
}
interface CacheInfo {
hash: string;
size: number;
lastModified: number;
dependencies: string[];
}
declare class HashManager {
private hashAlgorithm;
constructor(_cacheDir?: string);
/**
* 计算文件哈希
*/
calculateFileHash(filePath: string): string;
/**
* 计算目录哈希
*/
calculateDirectoryHash(dirPath: string, patterns?: string[]): string;
/**
* 计算依赖哈希
*/
calculateDependenciesHash(dependencies: Record<string, string>): string;
/**
* 生成缓存键
*/
generateCacheKey(projectPath: string, dependencies: Record<string, string>, buildConfig: Record<string, any>): string;
/**
* 创建缓存信息
*/
createCacheInfo(hash: string, size: number, dependencies: string[]): CacheInfo;
/**
* 验证缓存有效性
*/
validateCache(cacheInfo: CacheInfo, currentHash: string): boolean;
/**
* 获取目录中的文件
*/
private getFilesInDirectory;
/**
* 计算对象哈希
*/
private calculateObjectHash;
}
/**
* 缓存压缩和序列化优化器
* 提供多种压缩算法和序列化策略
*/
declare class CacheCompressor {
private compressionLevel;
private spinner;
constructor(compressionLevel?: number);
/**
* 压缩缓存数据
*/
compress(data: any, algorithm?: 'gzip' | 'brotli' | 'none'): Promise<Buffer>;
/**
* 解压缩缓存数据
*/
decompress(buffer: Buffer, algorithm?: 'gzip' | 'brotli' | 'none'): Promise<any>;
/**
* 序列化数据
*/
serialize(data: any): string;
/**
* 反序列化数据
*/
deserialize(serialized: string): any;
/**
* 计算压缩比
*/
calculateCompressionRatio(originalSize: number, compressedSize: number): number;
/**
* 选择最佳压缩算法
*/
selectBestCompression(data: any): Promise<{
algorithm: 'gzip' | 'brotli' | 'none';
compressed: Buffer;
ratio: number;
}>;
/**
* 批量压缩
*/
compressBatch(items: Array<{
key: string;
data: any;
}>, algorithm?: 'gzip' | 'brotli' | 'none'): Promise<Map<string, Buffer>>;
/**
* 批量解压缩
*/
decompressBatch(items: Map<string, Buffer>, algorithm?: 'gzip' | 'brotli' | 'none'): Promise<Map<string, any>>;
/**
* 测试压缩算法
*/
private testCompression;
/**
* Gzip 压缩
*/
private compressGzip;
/**
* Gzip 解压缩
*/
private decompressGzip;
/**
* Brotli 压缩
*/
private compressBrotli;
/**
* Brotli 解压缩
*/
private decompressBrotli;
/**
* 获取压缩统计信息
*/
getCompressionStats(originalSizes: number[], compressedSizes: number[]): {
totalOriginalSize: number;
totalCompressedSize: number;
averageCompressionRatio: number;
spaceSaved: number;
spaceSavedPercentage: number;
};
}
/**
* 热启动优化器
* 专门用于提升 dev 和 build 命令的启动速度
*/
/**
* 热启动优化器
*/
declare class HotStartOptimizer {
private cacheManager;
private versionManager;
private strategyManager;
private metricsCollector;
private spinner;
constructor();
/**
* 初始化热启动优化器
*/
initialize(config?: Partial<CacheConfig>): Promise<void>;
/**
* 优化开发模式启动
*/
optimizeDevStart(context: {
projectName: string;
projectVersion: string;
devServerConfig: any;
sourceFiles: string[];
}): Promise<{
useCache: boolean;
cachedConfig?: any;
cachedDependencies?: any;
startupTime: number;
}>;
/**
* 优化构建模式启动
*/
optimizeBuildStart(context: {
projectName: string;
projectVersion: string;
buildConfig: any;
sourceFiles: string[];
}): Promise<{
useCache: boolean;
cachedBuild?: any;
incrementalBuild: boolean;
startupTime: number;
}>;
/**
* 保存构建结果
*/
saveBuildResult(context: {
projectName: string;
projectVersion: string;
buildResult: any;
sourceFiles: string[];
}): Promise<void>;
/**
* 获取项目依赖信息
*/
private getProjectDependencies;
/**
* 生成启动性能报告
*/
generateStartupReport(): Promise<void>;
/**
* 清理优化器
*/
cleanup(): Promise<void>;
}
/**
* 创建热启动优化器实例
*/
declare function createHotStartOptimizer(): HotStartOptimizer;
/**
* 默认热启动优化器实例
*/
declare const hotStartOptimizer: HotStartOptimizer;
export { CacheCompressor, CacheConfig, CacheItem, CacheMeta, CacheProvider, CacheStats, CloudCache, CloudCacheProvider, HashManager, HotStartOptimizer, LocalCache, createHotStartOptimizer, hotStartOptimizer };