wa-chat-server
Version:
Watson Assistant powered chat server
39 lines (38 loc) • 1.53 kB
TypeScript
import { ISessionConfig } from '../../interface/ISessionConfig';
import { ISession } from '../../interface/ISession';
import { ISessionStorage } from '../../interface/ISessionStorage';
import { ISessionStorageFactory } from '../../types';
/**
* Session implementation
*
* Usage:
* const session = await new Session(sessionId, ...).start();
* 1) session.data.general[KEY] = VALUE;
* 2) session.data.assistants[ALIAS][KEY] = VALUE;
* await session.save()
*
* If we don't have sessionId we just provide empty value and
* a new session will be created. Similarly a new session is created
* if the provided session id does not correspond to a valid session.
* The session id effectively used is stored in the public class
* property sessionId.
*/
export declare class Session implements ISession {
sessionId: string;
config: ISessionConfig;
storageFactories: Map<string, ISessionStorageFactory>;
data: Record<string, any>;
static sessionStorages: Map<string, ISessionStorage>;
sessionStorage: ISessionStorage;
runningAssistant: string;
constructor(sessionId: string, config?: ISessionConfig, storageFactories?: Map<string, ISessionStorageFactory>);
initStorage(): Promise<void>;
restartSession(): Promise<void>;
private initSessionData;
start(): Promise<Session>;
updateContext(newPayload: any): void;
save(): Promise<void>;
getStorage(): ISessionStorage;
currentData(): Record<string, any>;
setRunningAssistant(runningAssistant: string): void;
}