UNPKG

redisess

Version:

Powerful redis session manager for NodeJS

50 lines (49 loc) 1.43 kB
import Redis, { Cluster } from 'ioredis'; import { RedisScript } from './redis-script.js'; import { Session } from './session.js'; export declare namespace SessionManager { interface Options { namespace?: string; ttl?: number; wipeInterval?: number; additionalFields?: string[]; } } export type ResultSession = Session & Record<string, any>; /** * * @class */ export declare class Backend { readonly client: Redis | Cluster; readonly ns?: string; readonly ttl?: number; readonly additionalFields?: string[]; readonly killScript: RedisScript; readonly writeScript: RedisScript; readonly wipeScript: RedisScript; readonly killAllScript: RedisScript; private wipeInterval?; private _wipeTimer?; private _timeDiff; /** * * @param {Object} client * @param {Object} [props] * @param {Object} [props.namespace='sm'] * @param {number} [props.ttl] Time-To-Live value in seconds * @param {number} [props.wipeInterval=1000] * @param {Array<String>} [props.additionalFields] */ constructor(client: Redis | Cluster, props?: SessionManager.Options); /** * Stops wipe timer */ quit(): void; wipe(): Promise<void>; getClient(): Promise<Redis | Cluster>; now(): number; private _stopWipeTimer; private _startWipeTimer; syncTime(client: Redis | Cluster): Promise<number>; }