keyv-anyredis
Version:
Storage adapter for Keyv that works with multiple Redis clients, including cluster clients
31 lines (30 loc) • 1.5 kB
TypeScript
/// <reference types="node" />
import EventEmitter from 'events';
import { CompatibleCallbackRedisClient, CompatibleNodeRedisV4Client, CompatiblePromiseRedisClient, CompatibleRedisClient } from './compatible-redis-client';
/**
* Converts a Redis callback interface to match a Redis Promise interface. Implements only
* a minimal subset of Redis functionality as defined in
* {@link CompatiblePromiseRedisClient}.
*/
export declare class RedisPromiseAdapter<T extends CompatibleCallbackRedisClient> extends EventEmitter implements CompatiblePromiseRedisClient {
#private;
constructor(client: T);
/**
* Factory method returns a Promise-based Redis client.
*
* If the provided client is a callback client, it’s wrapped in the Promise adapter. If
* the provided client is a Promise client, it’s passed through and returned.
*
* @param client a Redis Promise or callback client
*
* @returns a Redis Promise client
*/
static create(client: CompatibleRedisClient | CompatibleNodeRedisV4Client): CompatiblePromiseRedisClient;
get(key: string): PromiseLike<string | null>;
set(key: string, value: string, expiryMode?: 'PX', time?: number): PromiseLike<unknown>;
del(key: string): PromiseLike<number>;
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>;
}