import cache from './redis.js'; import type { RedisValue } from './redis.js'; interface CacheFacade { ready(): Promise; put(key: string, value: T, ttl?: number): Promise; get(key: string, defaultValue?: T | null): Promise; has(key: string): Promise; forget(key: string): Promise; flush(): Promise; forever(key: string, value: T): Promise; remember( key: string, ttl: number, callback: () => Promise | T ): Promise; rememberForever(key: string, callback: () => Promise | T): Promise; } const Cache: CacheFacade = { ready: () => cache.ready(), put: (key: string, value: T, ttl?: number) => cache.put(key, value, ttl), get: (key: string, defaultValue?: T | null) => cache.get(key, defaultValue), has: (key: string) => cache.has(key), forget: (key: string) => cache.forget(key), flush: () => cache.flush(), forever: (key: string, value: T) => cache.forever(key, value), remember: (key: string, ttl: number, callback: () => Promise | T) => cache.remember(key, ttl, callback), rememberForever: (key: string, callback: () => Promise | T) => cache.rememberForever(key, callback) }; export default Cache;