UNPKG

cache-manager

Version:
96 lines (92 loc) 3.43 kB
import EventEmitter from 'node:events'; import { KeyvStoreAdapter, StoredData, Keyv, StoredDataRaw } from 'keyv'; type CacheManagerStore = { name: string; isCacheable?: (value: unknown) => boolean; get(key: string): Promise<any>; mget(...keys: string[]): Promise<unknown[]>; set(key: string, value: any, ttl?: number): Promise<any>; mset(data: Record<string, any>, ttl?: number): Promise<void>; del(key: string): Promise<void>; mdel(...keys: string[]): Promise<void>; ttl(key: string, ttl?: number): Promise<number>; keys(): Promise<string[]>; reset?(): Promise<void>; on?(event: string, listener: (...arguments_: any[]) => void): void; disconnect?(): Promise<void>; }; declare class KeyvAdapter implements KeyvStoreAdapter { opts: any; namespace?: string | undefined; private readonly _cache; constructor(store: CacheManagerStore); get<T>(key: string): Promise<StoredData<T> | undefined>; set(key: string, value: any, ttl?: number): Promise<boolean>; delete(key: string): Promise<boolean>; clear(): Promise<void>; has?(key: string): Promise<boolean>; getMany?<T>(keys: string[]): Promise<Array<StoredData<T | undefined>>>; deleteMany?(key: string[]): Promise<boolean>; on(event: string, listener: (...arguments_: any[]) => void): this; disconnect?(): Promise<void>; } type CreateCacheOptions = { stores?: Keyv[]; ttl?: number; refreshThreshold?: number; refreshAllStores?: boolean; nonBlocking?: boolean; cacheId?: string; }; type WrapOptions<T> = { ttl?: number | ((value: T) => number); refreshThreshold?: number | ((value: T) => number); }; type WrapOptionsRaw<T> = WrapOptions<T> & { raw: true; }; type Cache = { get: <T>(key: string) => Promise<T | null>; mget: <T>(keys: string[]) => Promise<Array<T | null>>; ttl: (key: string) => Promise<number | null>; set: <T>(key: string, value: T, ttl?: number) => Promise<T>; mset: <T>(list: Array<{ key: string; value: T; ttl?: number; }>) => Promise<Array<{ key: string; value: T; ttl?: number; }>>; del: (key: string) => Promise<boolean>; mdel: (keys: string[]) => Promise<boolean>; clear: () => Promise<boolean>; on: <E extends keyof Events>(event: E, listener: Events[E]) => EventEmitter; off: <E extends keyof Events>(event: E, listener: Events[E]) => EventEmitter; disconnect: () => Promise<undefined>; cacheId: () => string; stores: Keyv[]; wrap<T>(key: string, fnc: () => T | Promise<T>, ttl?: number | ((value: T) => number), refreshThreshold?: number | ((value: T) => number)): Promise<T>; wrap<T>(key: string, fnc: () => T | Promise<T>, options: WrapOptions<T>): Promise<T>; wrap<T>(key: string, fnc: () => T | Promise<T>, options: WrapOptionsRaw<T>): Promise<StoredDataRaw<T>>; }; type Events = { set: <T>(data: { key: string; value: T; error?: unknown; }) => void; del: (data: { key: string; error?: unknown; }) => void; clear: (error?: unknown) => void; refresh: <T>(data: { key: string; value: T; error?: unknown; }) => void; }; declare const createCache: (options?: CreateCacheOptions) => Cache; export { type Cache, type CacheManagerStore, type CreateCacheOptions, type Events, KeyvAdapter, createCache };