redisess
Version:
Powerful redis session manager for NodeJS
50 lines (49 loc) • 1.43 kB
TypeScript
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>;
}