UNPKG

keyv-anyredis

Version:

Storage adapter for Keyv that works with multiple Redis clients, including cluster clients

55 lines (54 loc) 2.89 kB
export declare type RedisCallback<T> = (error: Error | null, result: T) => void; /** * A minimal subset of the callback interface that is implemented by several Redis * clients. */ export interface CompatibleCallbackRedisClient { get(key: string, callback?: RedisCallback<string | null>): unknown; set(key: string, value: string, callback?: RedisCallback<unknown>): unknown; set(key: string, value: string, expiryMode: 'PX', time: number, callback?: RedisCallback<unknown>): unknown; del(key: string, callback?: RedisCallback<number>): unknown; on?(event: 'error', callback?: (error: Error) => unknown): unknown; sadd(key: string, member: string, callback?: RedisCallback<unknown>): unknown; srem(key: string, member: string, callback?: RedisCallback<unknown>): unknown; smembers(key: string, callback?: RedisCallback<string[]>): unknown; sismember(key: string, member: string, callback?: RedisCallback<number>): unknown; } /** * A minimal subset of the Promise interface that is implemented by several Redis clients. */ export interface CompatiblePromiseRedisClient { get(key: string): PromiseLike<string | null>; set(key: string, value: string): PromiseLike<unknown>; set(key: string, value: string, expiryMode: 'PX', time: number): PromiseLike<unknown>; del(key: string): PromiseLike<number>; on?(event: 'error', callback: (error: Error) => unknown): unknown; sadd(key: string, member: string): PromiseLike<unknown>; srem(key: string, member: string): PromiseLike<unknown>; smembers(key: string): PromiseLike<string[]>; sismember(key: string, member: string): PromiseLike<number | boolean>; } /** * A minimal subset of the Promise interface that is implemented by the “modern” * node-redis version 4. */ export interface CompatibleNodeRedisV4Client { get(key: string): Promise<string | null>; GET(key: string): Promise<string | null>; set(key: string, value: string, options?: { PX: number; }): Promise<unknown>; SET(key: string, value: string, options?: { PX: number; }): Promise<unknown>; del(key: string): Promise<number>; DEL(key: string): Promise<number>; on?(event: 'error', callback: (error: Error) => unknown): unknown; SADD(key: string, member: string): Promise<unknown>; SREM(key: string, member: string): Promise<unknown>; SMEMBERS(key: string): Promise<string[]>; SISMEMBER(key: string, member: string): Promise<number | boolean>; } export declare type CompatibleRedisClient = CompatibleCallbackRedisClient | CompatiblePromiseRedisClient | CompatibleNodeRedisV4Client; export declare function isCompatiblePromiseRedisClient(client: CompatibleRedisClient): client is CompatiblePromiseRedisClient; export declare function isCompatibleNodeRedisV4Client(client: CompatibleRedisClient): client is CompatibleNodeRedisV4Client;