| import { KeyvStoreAdapter, StoredData, Keyv } from 'keyv'; | |
| export { Keyv, KeyvHooks, KeyvOptions, KeyvStoreAdapter } from 'keyv'; | |
| import { Hookified } from 'hookified'; | |
| type CacheableOptions$1 = { | |
| enabled?: boolean; | |
| }; | |
| declare class CacheableStats { | |
| private _hits; | |
| private _misses; | |
| private _gets; | |
| private _sets; | |
| private _deletes; | |
| private _clears; | |
| private _vsize; | |
| private _ksize; | |
| private _count; | |
| private _enabled; | |
| constructor(options?: CacheableOptions$1); | |
| /** | |
| * @returns {boolean} - Whether the stats are enabled | |
| */ | |
| get enabled(): boolean; | |
| /** | |
| * @param {boolean} enabled - Whether to enable the stats | |
| */ | |
| set enabled(enabled: boolean); | |
| /** | |
| * @returns {number} - The number of hits | |
| * @readonly | |
| */ | |
| get hits(): number; | |
| /** | |
| * @returns {number} - The number of misses | |
| * @readonly | |
| */ | |
| get misses(): number; | |
| /** | |
| * @returns {number} - The number of gets | |
| * @readonly | |
| */ | |
| get gets(): number; | |
| /** | |
| * @returns {number} - The number of sets | |
| * @readonly | |
| */ | |
| get sets(): number; | |
| /** | |
| * @returns {number} - The number of deletes | |
| * @readonly | |
| */ | |
| get deletes(): number; | |
| /** | |
| * @returns {number} - The number of clears | |
| * @readonly | |
| */ | |
| get clears(): number; | |
| /** | |
| * @returns {number} - The vsize (value size) of the cache instance | |
| * @readonly | |
| */ | |
| get vsize(): number; | |
| /** | |
| * @returns {number} - The ksize (key size) of the cache instance | |
| * @readonly | |
| */ | |
| get ksize(): number; | |
| /** | |
| * @returns {number} - The count of the cache instance | |
| * @readonly | |
| */ | |
| get count(): number; | |
| incrementHits(): void; | |
| incrementMisses(): void; | |
| incrementGets(): void; | |
| incrementSets(): void; | |
| incrementDeletes(): void; | |
| incrementClears(): void; | |
| incrementVSize(value: any): void; | |
| decreaseVSize(value: any): void; | |
| incrementKSize(key: string): void; | |
| decreaseKSize(key: string): void; | |
| incrementCount(): void; | |
| decreaseCount(): void; | |
| setCount(count: number): void; | |
| roughSizeOfString(value: string): number; | |
| roughSizeOfObject(object: any): number; | |
| reset(): void; | |
| resetStoreValues(): void; | |
| } | |
| /** | |
| * CacheableItem | |
| * @typedef {Object} CacheableItem | |
| * @property {string} key - The key of the cacheable item | |
| * @property {any} value - The value of the cacheable item | |
| * @property {number|string} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable | |
| * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. If both are | |
| * undefined then it will not have a time-to-live. | |
| */ | |
| type CacheableItem = { | |
| key: string; | |
| value: any; | |
| ttl?: number | string; | |
| }; | |
| type CacheableStoreItem = { | |
| key: string; | |
| value: any; | |
| expires?: number; | |
| }; | |
| type WrapFunctionOptions = { | |
| ttl?: number | string; | |
| keyPrefix?: string; | |
| cacheErrors?: boolean; | |
| cacheId?: string; | |
| }; | |
| type WrapOptions = WrapFunctionOptions & { | |
| cache: Cacheable; | |
| }; | |
| type WrapSyncOptions = WrapFunctionOptions & { | |
| cache: CacheableMemory; | |
| }; | |
| type AnyFunction = (...arguments_: any[]) => any; | |
| declare function wrapSync<T>(function_: AnyFunction, options: WrapSyncOptions): AnyFunction; | |
| declare function wrap<T>(function_: AnyFunction, options: WrapOptions): AnyFunction; | |
| /** | |
| * @typedef {Object} CacheableMemoryOptions | |
| * @property {number|string} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable | |
| * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. If both are | |
| * undefined then it will not have a time-to-live. | |
| * @property {boolean} [useClone] - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. | |
| * @property {number} [lruSize] - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. | |
| * @property {number} [checkInterval] - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. | |
| */ | |
| type CacheableMemoryOptions = { | |
| ttl?: number | string; | |
| useClone?: boolean; | |
| lruSize?: number; | |
| checkInterval?: number; | |
| }; | |
| type SetOptions = { | |
| ttl?: number | string; | |
| expire?: number | Date; | |
| }; | |
| declare class CacheableMemory extends Hookified { | |
| private _lru; | |
| private readonly _hashCache; | |
| private readonly _hash0; | |
| private readonly _hash1; | |
| private readonly _hash2; | |
| private readonly _hash3; | |
| private readonly _hash4; | |
| private readonly _hash5; | |
| private readonly _hash6; | |
| private readonly _hash7; | |
| private readonly _hash8; | |
| private readonly _hash9; | |
| private _ttl; | |
| private _useClone; | |
| private _lruSize; | |
| private _checkInterval; | |
| private _interval; | |
| /** | |
| * @constructor | |
| * @param {CacheableMemoryOptions} [options] - The options for the CacheableMemory | |
| */ | |
| constructor(options?: CacheableMemoryOptions); | |
| /** | |
| * Gets the time-to-live | |
| * @returns {number|string|undefined} - The time-to-live in miliseconds or a human-readable format. If undefined, it will not have a time-to-live. | |
| */ | |
| get ttl(): number | string | undefined; | |
| /** | |
| * Sets the time-to-live | |
| * @param {number|string|undefined} value - The time-to-live in miliseconds or a human-readable format (example '1s' = 1 second, '1h' = 1 hour). If undefined, it will not have a time-to-live. | |
| */ | |
| set ttl(value: number | string | undefined); | |
| /** | |
| * Gets whether to use clone | |
| * @returns {boolean} - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. | |
| */ | |
| get useClone(): boolean; | |
| /** | |
| * Sets whether to use clone | |
| * @param {boolean} value - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. | |
| */ | |
| set useClone(value: boolean); | |
| /** | |
| * Gets the size of the LRU cache | |
| * @returns {number} - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. | |
| */ | |
| get lruSize(): number; | |
| /** | |
| * Sets the size of the LRU cache | |
| * @param {number} value - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. | |
| */ | |
| set lruSize(value: number); | |
| /** | |
| * Gets the check interval | |
| * @returns {number} - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. | |
| */ | |
| get checkInterval(): number; | |
| /** | |
| * Sets the check interval | |
| * @param {number} value - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. | |
| */ | |
| set checkInterval(value: number); | |
| /** | |
| * Gets the size of the cache | |
| * @returns {number} - The size of the cache | |
| */ | |
| get size(): number; | |
| /** | |
| * Gets the keys | |
| * @returns {IterableIterator<string>} - The keys | |
| */ | |
| get keys(): IterableIterator<string>; | |
| /** | |
| * Gets the items | |
| * @returns {IterableIterator<CacheableStoreItem>} - The items | |
| */ | |
| get items(): IterableIterator<CacheableStoreItem>; | |
| /** | |
| * Gets the value of the key | |
| * @param {string} key - The key to get the value | |
| * @returns {T | undefined} - The value of the key | |
| */ | |
| get<T>(key: string): T | undefined; | |
| /** | |
| * Gets the values of the keys | |
| * @param {string[]} keys - The keys to get the values | |
| * @returns {T[]} - The values of the keys | |
| */ | |
| getMany<T>(keys: string[]): T[]; | |
| /** | |
| * Gets the raw value of the key | |
| * @param {string} key - The key to get the value | |
| * @returns {CacheableStoreItem | undefined} - The raw value of the key | |
| */ | |
| getRaw(key: string): CacheableStoreItem | undefined; | |
| /** | |
| * Gets the raw values of the keys | |
| * @param {string[]} keys - The keys to get the values | |
| * @returns {CacheableStoreItem[]} - The raw values of the keys | |
| */ | |
| getManyRaw(keys: string[]): Array<CacheableStoreItem | undefined>; | |
| /** | |
| * Sets the value of the key | |
| * @param {string} key - The key to set the value | |
| * @param {any} value - The value to set | |
| * @param {number|string|SetOptions} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable. | |
| * If you want to set expire directly you can do that by setting the expire property in the SetOptions. | |
| * If you set undefined, it will use the default time-to-live. If both are undefined then it will not have a time-to-live. | |
| * @returns {void} | |
| */ | |
| set(key: string, value: any, ttl?: number | string | SetOptions): void; | |
| /** | |
| * Sets the values of the keys | |
| * @param {CacheableItem[]} items - The items to set | |
| * @returns {void} | |
| */ | |
| setMany(items: CacheableItem[]): void; | |
| /** | |
| * Checks if the key exists | |
| * @param {string} key - The key to check | |
| * @returns {boolean} - If true, the key exists. If false, the key does not exist. | |
| */ | |
| has(key: string): boolean; | |
| /** | |
| * @function hasMany | |
| * @param {string[]} keys - The keys to check | |
| * @returns {boolean[]} - If true, the key exists. If false, the key does not exist. | |
| */ | |
| hasMany(keys: string[]): boolean[]; | |
| /** | |
| * Take will get the key and delete the entry from cache | |
| * @param {string} key - The key to take | |
| * @returns {T | undefined} - The value of the key | |
| */ | |
| take<T>(key: string): T | undefined; | |
| /** | |
| * TakeMany will get the keys and delete the entries from cache | |
| * @param {string[]} keys - The keys to take | |
| * @returns {T[]} - The values of the keys | |
| */ | |
| takeMany<T>(keys: string[]): T[]; | |
| /** | |
| * Delete the key | |
| * @param {string} key - The key to delete | |
| * @returns {void} | |
| */ | |
| delete(key: string): void; | |
| /** | |
| * Delete the keys | |
| * @param {string[]} keys - The keys to delete | |
| * @returns {void} | |
| */ | |
| deleteMany(keys: string[]): void; | |
| /** | |
| * Clear the cache | |
| * @returns {void} | |
| */ | |
| clear(): void; | |
| /** | |
| * Get the store based on the key (internal use) | |
| * @param {string} key - The key to get the store | |
| * @returns {CacheableHashStore} - The store | |
| */ | |
| getStore(key: string): Map<string, CacheableStoreItem>; | |
| /** | |
| * Get the store based on the hash (internal use) | |
| * @param {number} hash | |
| * @returns {Map<string, CacheableStoreItem>} | |
| */ | |
| getStoreFromHash(hash: number): Map<string, CacheableStoreItem>; | |
| /** | |
| * Hash the key (internal use) | |
| * @param key | |
| * @returns {number} from 0 to 9 | |
| */ | |
| hashKey(key: string): number; | |
| /** | |
| * Clone the value. This is for internal use | |
| * @param {any} value - The value to clone | |
| * @returns {any} - The cloned value | |
| */ | |
| clone(value: any): any; | |
| /** | |
| * Add to the front of the LRU cache. This is for internal use | |
| * @param {string} key - The key to add to the front | |
| * @returns {void} | |
| */ | |
| lruAddToFront(key: string): void; | |
| /** | |
| * Move to the front of the LRU cache. This is for internal use | |
| * @param {string} key - The key to move to the front | |
| * @returns {void} | |
| */ | |
| lruMoveToFront(key: string): void; | |
| /** | |
| * Resize the LRU cache. This is for internal use | |
| * @returns {void} | |
| */ | |
| lruResize(): void; | |
| /** | |
| * Check for expiration. This is for internal use | |
| * @returns {void} | |
| */ | |
| checkExpiration(): void; | |
| /** | |
| * Start the interval check. This is for internal use | |
| * @returns {void} | |
| */ | |
| startIntervalCheck(): void; | |
| /** | |
| * Stop the interval check. This is for internal use | |
| * @returns {void} | |
| */ | |
| stopIntervalCheck(): void; | |
| /** | |
| * Hash the object. This is for internal use | |
| * @param {any} object - The object to hash | |
| * @param {string} [algorithm='sha256'] - The algorithm to hash | |
| * @returns {string} - The hashed string | |
| */ | |
| hash(object: any, algorithm?: string): string; | |
| /** | |
| * Wrap the function for caching | |
| * @param {Function} function_ - The function to wrap | |
| * @param {Object} [options] - The options to wrap | |
| * @returns {Function} - The wrapped function | |
| */ | |
| wrap<T, Arguments extends any[]>(function_: (...arguments_: Arguments) => T, options?: WrapFunctionOptions): (...arguments_: Arguments) => T; | |
| private isPrimitive; | |
| private concatStores; | |
| private setTtl; | |
| } | |
| type KeyvCacheableMemoryOptions = CacheableMemoryOptions & { | |
| namespace?: string; | |
| }; | |
| declare class KeyvCacheableMemory implements KeyvStoreAdapter { | |
| opts: CacheableMemoryOptions; | |
| private readonly _defaultCache; | |
| private readonly _nCache; | |
| private _namespace?; | |
| constructor(options?: KeyvCacheableMemoryOptions); | |
| get namespace(): string | undefined; | |
| set namespace(value: string | undefined); | |
| get store(): CacheableMemory; | |
| get<Value>(key: string): Promise<StoredData<Value> | undefined>; | |
| getMany<Value>(keys: string[]): Promise<Array<StoredData<Value | undefined>>>; | |
| set(key: string, value: any, ttl?: number): Promise<void>; | |
| setMany(values: Array<{ | |
| key: string; | |
| value: any; | |
| ttl?: number; | |
| }>): Promise<void>; | |
| delete(key: string): Promise<boolean>; | |
| deleteMany?(key: string[]): Promise<boolean>; | |
| clear(): Promise<void>; | |
| has?(key: string): Promise<boolean>; | |
| on(event: string, listener: (...arguments_: any[]) => void): this; | |
| getStore(namespace?: string): CacheableMemory; | |
| } | |
| /** | |
| * Creates a new Keyv instance with a new KeyvCacheableMemory store. This also removes the serialize/deserialize methods from the Keyv instance for optimization. | |
| * @param options | |
| * @returns | |
| */ | |
| declare function createKeyv(options?: KeyvCacheableMemoryOptions): Keyv; | |
| declare const shorthandToMilliseconds: (shorthand?: string | number) => number | undefined; | |
| declare const shorthandToTime: (shorthand?: string | number, fromDate?: Date) => number; | |
| declare enum CacheableHooks { | |
| BEFORE_SET = "BEFORE_SET", | |
| AFTER_SET = "AFTER_SET", | |
| BEFORE_SET_MANY = "BEFORE_SET_MANY", | |
| AFTER_SET_MANY = "AFTER_SET_MANY", | |
| BEFORE_GET = "BEFORE_GET", | |
| AFTER_GET = "AFTER_GET", | |
| BEFORE_GET_MANY = "BEFORE_GET_MANY", | |
| AFTER_GET_MANY = "AFTER_GET_MANY" | |
| } | |
| declare enum CacheableEvents { | |
| ERROR = "error" | |
| } | |
| type CacheableOptions = { | |
| /** | |
| * The primary store for the cacheable instance | |
| */ | |
| primary?: Keyv | KeyvStoreAdapter; | |
| /** | |
| * The secondary store for the cacheable instance | |
| */ | |
| secondary?: Keyv | KeyvStoreAdapter; | |
| /** | |
| * Whether to enable statistics for the cacheable instance | |
| */ | |
| stats?: boolean; | |
| /** | |
| * Whether the secondary store is non-blocking mode. It is set to false by default. | |
| * If it is set to true then the secondary store will not block the primary store. | |
| */ | |
| nonBlocking?: boolean; | |
| /** | |
| * The time-to-live for the cacheable instance and will be used as the default value. | |
| * can be a number in milliseconds or a human-readable format such as `1s` for 1 second or `1h` for 1 hour | |
| * or undefined if there is no time-to-live. | |
| */ | |
| ttl?: number | string; | |
| /** | |
| * The namespace for the cacheable instance. It can be a string or a function that returns a string. | |
| */ | |
| namespace?: string | (() => string); | |
| /** | |
| * The cacheId for the cacheable instance. This is primarily used for the wrap function to not have conflicts. | |
| * If it is not set then it will be a random string that is generated | |
| */ | |
| cacheId?: string; | |
| }; | |
| declare class Cacheable extends Hookified { | |
| private _primary; | |
| private _secondary; | |
| private _nonBlocking; | |
| private _ttl?; | |
| private readonly _stats; | |
| private _namespace?; | |
| private _cacheId; | |
| /** | |
| * Creates a new cacheable instance | |
| * @param {CacheableOptions} [options] The options for the cacheable instance | |
| */ | |
| constructor(options?: CacheableOptions); | |
| /** | |
| * The namespace for the cacheable instance | |
| * @returns {string | (() => string) | undefined} The namespace for the cacheable instance | |
| */ | |
| get namespace(): string | (() => string) | undefined; | |
| /** | |
| * Sets the namespace for the cacheable instance | |
| * @param {string | (() => string) | undefined} namespace The namespace for the cacheable instance | |
| * @returns {void} | |
| */ | |
| set namespace(namespace: string | (() => string) | undefined); | |
| /** | |
| * The statistics for the cacheable instance | |
| * @returns {CacheableStats} The statistics for the cacheable instance | |
| */ | |
| get stats(): CacheableStats; | |
| /** | |
| * The primary store for the cacheable instance | |
| * @returns {Keyv} The primary store for the cacheable instance | |
| */ | |
| get primary(): Keyv; | |
| /** | |
| * Sets the primary store for the cacheable instance | |
| * @param {Keyv} primary The primary store for the cacheable instance | |
| */ | |
| set primary(primary: Keyv); | |
| /** | |
| * The secondary store for the cacheable instance | |
| * @returns {Keyv | undefined} The secondary store for the cacheable instance | |
| */ | |
| get secondary(): Keyv | undefined; | |
| /** | |
| * Sets the secondary store for the cacheable instance. If it is set to undefined then the secondary store is disabled. | |
| * @param {Keyv | undefined} secondary The secondary store for the cacheable instance | |
| * @returns {void} | |
| */ | |
| set secondary(secondary: Keyv | undefined); | |
| /** | |
| * Gets whether the secondary store is non-blocking mode. It is set to false by default. | |
| * If it is set to true then the secondary store will not block the primary store. | |
| * | |
| * [Learn more about non-blocking mode](https://cacheable.org/docs/cacheable/#non-blocking-operations). | |
| * | |
| * @returns {boolean} Whether the cacheable instance is non-blocking | |
| */ | |
| get nonBlocking(): boolean; | |
| /** | |
| * Sets whether the secondary store is non-blocking mode. It is set to false by default. | |
| * If it is set to true then the secondary store will not block the primary store. | |
| * | |
| * [Learn more about non-blocking mode](https://cacheable.org/docs/cacheable/#non-blocking-operations). | |
| * | |
| * @param {boolean} nonBlocking Whether the cacheable instance is non-blocking | |
| * @returns {void} | |
| */ | |
| set nonBlocking(nonBlocking: boolean); | |
| /** | |
| * The time-to-live for the cacheable instance and will be used as the default value. | |
| * can be a number in milliseconds or a human-readable format such as `1s` for 1 second or `1h` for 1 hour | |
| * or undefined if there is no time-to-live. | |
| * | |
| * [Learn more about time-to-live](https://cacheable.org/docs/cacheable/#shorthand-for-time-to-live-ttl). | |
| * | |
| * @returns {number | string | undefined} The time-to-live for the cacheable instance in milliseconds, human-readable format or undefined | |
| * @example | |
| * ```typescript | |
| * const cacheable = new Cacheable({ ttl: '1h' }); | |
| * console.log(cacheable.ttl); // 1h | |
| * ``` | |
| */ | |
| get ttl(): number | string | undefined; | |
| /** | |
| * Sets the time-to-live for the cacheable instance and will be used as the default value. | |
| * If you set a number it is miliseconds, if you set a string it is a human-readable | |
| * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that | |
| * there is no time-to-live. | |
| * | |
| * [Learn more about time-to-live](https://cacheable.org/docs/cacheable/#shorthand-for-time-to-live-ttl). | |
| * | |
| * @param {number | string | undefined} ttl The time-to-live for the cacheable instance | |
| * @example | |
| * ```typescript | |
| * const cacheable = new Cacheable(); | |
| * cacheable.ttl = '1h'; // Set the time-to-live to 1 hour | |
| * ``` | |
| * or setting the time-to-live in milliseconds | |
| * ```typescript | |
| * const cacheable = new Cacheable(); | |
| * cacheable.ttl = 3600000; // Set the time-to-live to 1 hour | |
| * ``` | |
| */ | |
| set ttl(ttl: number | string | undefined); | |
| /** | |
| * The cacheId for the cacheable instance. This is primarily used for the wrap function to not have conflicts. | |
| * If it is not set then it will be a random string that is generated | |
| * @returns {string} The cacheId for the cacheable instance | |
| */ | |
| get cacheId(): string; | |
| /** | |
| * Sets the cacheId for the cacheable instance. This is primarily used for the wrap function to not have conflicts. | |
| * If it is not set then it will be a random string that is generated | |
| * @param {string} cacheId The cacheId for the cacheable instance | |
| */ | |
| set cacheId(cacheId: string); | |
| /** | |
| * Sets the primary store for the cacheable instance | |
| * @param {Keyv | KeyvStoreAdapter} primary The primary store for the cacheable instance | |
| * @returns {void} | |
| */ | |
| setPrimary(primary: Keyv | KeyvStoreAdapter): void; | |
| /** | |
| * Sets the secondary store for the cacheable instance. If it is set to undefined then the secondary store is disabled. | |
| * @param {Keyv | KeyvStoreAdapter} secondary The secondary store for the cacheable instance | |
| * @returns {void} | |
| */ | |
| setSecondary(secondary: Keyv | KeyvStoreAdapter): void; | |
| getNameSpace(): string | undefined; | |
| /** | |
| * Gets the value of the key. If the key does not exist in the primary store then it will check the secondary store. | |
| * @param {string} key The key to get the value of | |
| * @returns {Promise<T | undefined>} The value of the key or undefined if the key does not exist | |
| */ | |
| get<T>(key: string): Promise<T | undefined>; | |
| /** | |
| * Gets the values of the keys. If the key does not exist in the primary store then it will check the secondary store. | |
| * @param {string[]} keys The keys to get the values of | |
| * @returns {Promise<Array<T | undefined>>} The values of the keys or undefined if the key does not exist | |
| */ | |
| getMany<T>(keys: string[]): Promise<Array<T | undefined>>; | |
| /** | |
| * Sets the value of the key. If the secondary store is set then it will also set the value in the secondary store. | |
| * @param {string} key the key to set the value of | |
| * @param {T} value The value to set | |
| * @param {number | string} [ttl] set a number it is miliseconds, set a string it is a human-readable | |
| * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. | |
| * @returns {boolean} Whether the value was set | |
| */ | |
| set<T>(key: string, value: T, ttl?: number | string): Promise<boolean>; | |
| /** | |
| * Sets the values of the keys. If the secondary store is set then it will also set the values in the secondary store. | |
| * @param {CacheableItem[]} items The items to set | |
| * @returns {boolean} Whether the values were set | |
| */ | |
| setMany(items: CacheableItem[]): Promise<boolean>; | |
| /** | |
| * Takes the value of the key and deletes the key. If the key does not exist then it will return undefined. | |
| * @param {string} key The key to take the value of | |
| * @returns {Promise<T | undefined>} The value of the key or undefined if the key does not exist | |
| */ | |
| take<T>(key: string): Promise<T | undefined>; | |
| /** | |
| * Takes the values of the keys and deletes the keys. If the key does not exist then it will return undefined. | |
| * @param {string[]} keys The keys to take the values of | |
| * @returns {Promise<Array<T | undefined>>} The values of the keys or undefined if the key does not exist | |
| */ | |
| takeMany<T>(keys: string[]): Promise<Array<T | undefined>>; | |
| /** | |
| * Checks if the key exists in the primary store. If it does not exist then it will check the secondary store. | |
| * @param {string} key The key to check | |
| * @returns {Promise<boolean>} Whether the key exists | |
| */ | |
| has(key: string): Promise<boolean>; | |
| /** | |
| * Checks if the keys exist in the primary store. If it does not exist then it will check the secondary store. | |
| * @param {string[]} keys The keys to check | |
| * @returns {Promise<boolean[]>} Whether the keys exist | |
| */ | |
| hasMany(keys: string[]): Promise<boolean[]>; | |
| /** | |
| * Deletes the key from the primary store. If the secondary store is set then it will also delete the key from the secondary store. | |
| * @param {string} key The key to delete | |
| * @returns {Promise<boolean>} Whether the key was deleted | |
| */ | |
| delete(key: string): Promise<boolean>; | |
| /** | |
| * Deletes the keys from the primary store. If the secondary store is set then it will also delete the keys from the secondary store. | |
| * @param {string[]} keys The keys to delete | |
| * @returns {Promise<boolean>} Whether the keys were deleted | |
| */ | |
| deleteMany(keys: string[]): Promise<boolean>; | |
| /** | |
| * Clears the primary store. If the secondary store is set then it will also clear the secondary store. | |
| * @returns {Promise<void>} | |
| */ | |
| clear(): Promise<void>; | |
| /** | |
| * Disconnects the primary store. If the secondary store is set then it will also disconnect the secondary store. | |
| * @returns {Promise<void>} | |
| */ | |
| disconnect(): Promise<void>; | |
| /** | |
| * Wraps a function with caching | |
| * | |
| * [Learn more about wrapping functions](https://cacheable.org/docs/cacheable/#wrap--memoization-for-sync-and-async-functions). | |
| * @param {Function} function_ The function to wrap | |
| * @param {WrapOptions} [options] The options for the wrap function | |
| * @returns {Function} The wrapped function | |
| */ | |
| wrap<T, Arguments extends any[]>(function_: (...arguments_: Arguments) => T, options?: WrapFunctionOptions): (...arguments_: Arguments) => T; | |
| /** | |
| * Will hash an object using the specified algorithm. The default algorithm is 'sha256'. | |
| * @param {any} object the object to hash | |
| * @param {string} algorithm the hash algorithm to use. The default is 'sha256' | |
| * @returns {string} the hash of the object | |
| */ | |
| hash(object: any, algorithm?: string): string; | |
| private deleteManyKeyv; | |
| private setManyKeyv; | |
| private hasManyKeyv; | |
| private setTtl; | |
| } | |
| export { Cacheable, CacheableEvents, CacheableHooks, type CacheableItem, CacheableMemory, type CacheableMemoryOptions, type CacheableOptions, CacheableStats, KeyvCacheableMemory, type WrapOptions, type WrapSyncOptions, createKeyv, shorthandToMilliseconds, shorthandToTime, wrap, wrapSync }; |