UNPKG

fastify-session-redis-store

Version:

Redis session store for @fastify/session

59 lines (58 loc) 2.21 kB
import { MemoryStore } from "@fastify/session"; export interface SessionData { id?: string; cookie: { originalMaxAge: number | null; maxAge?: number; signed?: boolean; expires?: Date | null; httpOnly?: boolean; path?: string; domain?: string; secure?: boolean | "auto"; sameSite?: boolean | "lax" | "strict" | "none"; }; } 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)[]>; } export interface Serializer { parse(s: string): SessionData | Promise<SessionData>; stringify(s: SessionData): string; } export interface RedisStoreOptions { client: any; prefix?: string; scanCount?: number; serializer?: Serializer; ttl?: number | ((sess: SessionData) => number); disableTTL?: boolean; disableTouch?: boolean; } export declare class RedisStore extends MemoryStore { 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;