UNPKG

synthia-cache-system

Version:

Synthia Engine Cache System - 核心缓存系统实现,提供多级缓存、版本管理、性能监控等功能

338 lines (329 loc) 8.13 kB
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 };