UNPKG

@linkedmink/multilevel-aging-cache

Version:

Package provides an interface to cache and persist data to Redis, MongoDB, memory

49 lines 1.96 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { IAgedValue } from '../queue/IAgedQueue'; import { IStorageProvider } from './IStorageProvider'; export declare enum StorageProviderEvent { Set = "StorageProviderSet", Delete = "StorageProviderDelete" } /** * Allow listening on Set and Delete events on a specific storage layer */ export declare class StorageProviderEventEmitter<TKey, TValue> extends EventEmitter implements IStorageProvider<TKey, TValue> { private readonly provider; private readonly isSetEmit; private readonly isDeleteEmit; readonly isPersistable = false; /** * @param provider The IStorageProvider to augment by emitting events * @param isSetEmit If StorageProviderEvent.Set will be emitted * @param isDeleteEmit If StorageProviderEvent.Delete will be emitted */ constructor(provider: IStorageProvider<TKey, TValue>, isSetEmit?: boolean, isDeleteEmit?: boolean); /** * @param key The key to retrieve * @returns The value if retreiving was successful or null */ get: (key: TKey) => Promise<IAgedValue<TValue> | null>; /** * @param key The key to set * @param value The value to set * @returns The value written if successful or null */ set(key: TKey, agedValue: IAgedValue<TValue>): Promise<IAgedValue<TValue> | null>; /** * @param key The key to the value to delete * @returns The value deleted or boolean (value | true is success). A provider * is not required to return a value */ delete(key: TKey): Promise<IAgedValue<TValue> | boolean>; /** * @returns The keys that are currently available in the provider */ keys: () => Promise<TKey[]>; /** * @returns The number of elements in this storage system */ size: () => Promise<number>; } //# sourceMappingURL=StorageProviderEventEmitter.d.ts.map