UNPKG

ioredis-cache

Version:

A promise-based cache package for Nodejs using IORedis

65 lines (64 loc) 2.56 kB
import type Redis from "ioredis"; import type { RedisKey } from "ioredis"; declare type Key = RedisKey | number; declare type Awaitable<T> = T | Promise<T>; export declare class AcquireFailedError extends Error { readonly cause?: unknown; constructor(message?: string, cause?: unknown); } export declare class ReleaseFailedError extends Error { readonly cause?: unknown; constructor(message?: string, cause?: unknown); } export declare type AcquireDesire<K extends string | number> = { key: K; desireAmount: number; limitAmount?: number; }; export declare type AcquiredResult<K extends string | number> = { key: K; currentAmount: number; acquiredAmount: number; lackingAmount: number; }; export declare type AcquireOptions = { prefix?: string; float?: boolean; limit?: number; }; export declare type AcquireOptionsInput = AcquireOptions | boolean; export declare type ReleaseItem<K extends string | number> = { key: K; amount: number; }; export declare class Acquire { private readonly redis; constructor(redis: Redis); acquire<T>(key: Key, amount: number, fn: (currentAmount: number, acquiredAmount: number, lackingAmount: number) => Awaitable<T>, options?: AcquireOptionsInput): Promise<T>; hashAcquire<T>(key: Key, id: Key, amount: number, fn: (currentAmount: number, acquiredAmount: number, lackingAmount: number) => Awaitable<T>, options?: AcquireOptionsInput): Promise<T>; acquireMany<K extends string | number, T>(items: AcquireDesire<K>[], fn: (acquireResult: AcquiredResult<K>[]) => Awaitable<T>, options?: AcquireOptions): Promise<T>; hashAcquireMany<K extends string | number, T>(hashKey: string, items: AcquireDesire<K>[], fn: (acquireResult: AcquiredResult<K>[]) => Awaitable<T>, options?: AcquireOptions): Promise<T>; private getChangeCommand; private getHashChangeCommand; private getAcquireCommand; private getHashAcquireCommand; private releaseMany; private hashReleaseMany; private getReleaseCommand; private getHashReleaseCommand; private releaseBy; private acquireBy; private executeAcquirePipeline; private releaseAfterAcquireFailure; private releaseLackingAmounts; private releaseSingleLackingAmount; private releaseSingleHashLackingAmount; private runAcquireCallback; private releaseAfterCallbackFailure; private getFailedIndexes; private getDesiredReleaseItems; private getAcquiredReleaseItems; private getAcquiredResults; private getAcquiredResult; } export {};