UNPKG

transitory

Version:

In-memory cache with high hit rates via LFU eviction. Supports time-based expiration, automatic loading and metrics.

21 lines (20 loc) 618 B
import { Cache } from '../Cache'; import { KeyType } from '../KeyType'; import { Loader } from './Loader'; /** * Cache that also supports loading of data if it's not in the cache. */ export interface LoadingCache<K extends KeyType, V> extends Cache<K, V> { /** * Get cached value or load it if not currently cached. Updates the usage * of the key. * * @param key - * key to get * @param loader - * optional loader to use for loading the object * @returns * promise that resolves to the loaded value */ get(key: K, loader?: Loader<K, V>): Promise<V>; }