UNPKG

@allan1361/iota-big3-sdk-middleware

Version:

🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability

60 lines 1.99 kB
import type { Request, RequestHandler, Response } from 'express'; export interface CacheConfig { redis?: { host?: string; port?: number; password?: string; db?: number; keyPrefix?: string; enableOfflineQueue?: boolean; retryStrategy?: (times: number) => number | null; }; defaultTTL?: number; keyGenerator?: (req: Request) => string; shouldCache?: (req: Request, res: Response) => boolean; errorHandler?: (error: Error) => void; compress?: boolean; namespace?: string; maxSize?: number; monitoring?: { enabled?: boolean; onHit?: (key: string, latency: number) => void; onMiss?: (key: string, latency: number) => void; onSet?: (key: string, size: number, latency: number) => void; onError?: (error: Error, operation: string) => void; }; } export declare class CacheMiddleware { private redis; private config; private stats; constructor(config?: CacheConfig); private initializeRedis; middleware(options?: { ttl?: number; key?: string | ((req: Request) => string); condition?: (req: Request, res: Response) => boolean; tags?: string[]; vary?: string[]; }): RequestHandler; invalidateAsync(pattern: string): Promise<number>; invalidateByTagsAsync(tags: string[]): Promise<number>; clearAsync(): Promise<void>; getStats(): typeof this.stats & { hitRate: number; }; warmCacheAsync(entries: Array<{ key: string; generator: () => Promise<any>; ttl?: number; }>): Promise<void>; closeAsync(): Promise<void>; private defaultKeyGenerator; private defaultShouldCache; private generateKey; private getFromCacheAsync; private setCacheAsync; private handleConditionalRequest; } export declare function createCacheMiddleware(config?: CacheConfig): CacheMiddleware; //# sourceMappingURL=cache-middleware.d.ts.map