UNPKG

@politie/sherlock-utils

Version:

Utility functions that are designed to work with Sherlock. His toolbelt.

14 lines (13 loc) 579 B
import { Derivable, SettableDerivable, Unwrappable } from '@politie/sherlock'; export interface MapImplementation<K, V> { set(key: K, value: V): void; delete(key: K): void; get(key: K): V | undefined; } export interface DerivableCacheOptions<K, V> { derivableFactory(key: K): Derivable<V>; mapFactory?(): MapImplementation<K, Derivable<V>>; delayedEviction?: boolean; } export type DerivableCache<K, V> = (key: Unwrappable<K>) => SettableDerivable<V>; export declare function derivableCache<K, V>(opts: DerivableCacheOptions<K, V>): DerivableCache<K, V>;