49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
import { SessionData, Store } from "express-session";
|
|
interface NormalizedRedisClient {
|
|
get(key: string): Promise<string | null>;
|
|
set(key: string, value: string, ttl?: number): Promise<string | null>;
|
|
expire(key: string, ttl: number): Promise<number | boolean>;
|
|
scanIterator(match: string, count: number): AsyncIterable<string>;
|
|
del(key: string[]): Promise<number>;
|
|
mget(key: string[]): Promise<(string | null)[]>;
|
|
}
|
|
interface Serializer {
|
|
parse(s: string): SessionData | Promise<SessionData>;
|
|
stringify(s: SessionData): string;
|
|
}
|
|
interface RedisStoreOptions {
|
|
client: any;
|
|
prefix?: string;
|
|
scanCount?: number;
|
|
serializer?: Serializer;
|
|
ttl?: number | {
|
|
(sess: SessionData): number;
|
|
};
|
|
disableTTL?: boolean;
|
|
disableTouch?: boolean;
|
|
}
|
|
declare class RedisStore extends Store {
|
|
client: NormalizedRedisClient;
|
|
prefix: string;
|
|
scanCount: number;
|
|
serializer: Serializer;
|
|
ttl: number | {
|
|
(sess: SessionData): number;
|
|
};
|
|
disableTTL: boolean;
|
|
disableTouch: boolean;
|
|
constructor(opts: RedisStoreOptions);
|
|
private normalizeClient;
|
|
get(sid: string, cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
set(sid: string, sess: SessionData, cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
touch(sid: string, sess: SessionData, cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
destroy(sid: string, cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
clear(cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
length(cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
ids(cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
all(cb?: (_err?: unknown, _data?: any) => void): Promise<void>;
|
|
private _getTTL;
|
|
private _getAllKeys;
|
|
}
|
|
export default RedisStore;
|