UNPKG

@croct/cache

Version:

An abstraction layer for caching.

24 lines (23 loc) 860 B
import { Log, Logger } from '@croct/logging'; import { CacheLoader, CacheProvider } from './cacheProvider'; type CacheErrorLog = Log<{ errorMessage: string; errorStack?: string; }>; /** * A cache wrapper that prevents any error from the wrapped cache from propagating to the caller. * * Errors retrieving values from the cache behave as a cache miss. * Errors retrieving a fresh value from the loader are propagated unchanged. */ export declare class ErrorResilientCache<K, V> implements CacheProvider<K, V> { private readonly cache; private readonly logger; constructor(cache: CacheProvider<K, V>, logger: Logger<CacheErrorLog>); get(key: K, loader: CacheLoader<K, V>): Promise<V>; set(key: K, value: V): Promise<void>; delete(key: K): Promise<void>; private logLoaderError; private logProviderError; } export {};