koa-session
Version:
Koa cookie session middleware with external store support
76 lines (75 loc) • 2.08 kB
TypeScript
import { Session } from './session.js';
import type { SessionOptions } from './index.js';
export declare class ContextSession {
ctx: any;
app: any;
opts: SessionOptions;
store: SessionOptions['store'];
session: Session | false;
externalKey?: string;
prevHash?: number;
/**
* context session constructor
*/
constructor(ctx: any, opts: SessionOptions);
/**
* internal logic of `ctx.session`
* @return {Session} session object
*/
get(): Session | null;
/**
* internal logic of `ctx.session=`
* @param {Object} val session object
*/
set(val: Record<string, unknown> | null): void;
/**
* init session from external store
* will be called in the front of session middleware
*
* @public
*/
initFromExternal(): Promise<void>;
/**
* init session from cookie
* @private
*/
initFromCookie(): void;
/**
* verify session(expired or custom verification)
* @param {Object} sessionData session data
* @param {Object} [key] session externalKey(optional)
* @private
*/
protected valid(sessionData: Record<string, unknown>, key?: string): boolean;
/**
* @param {String} event event name
* @param {Object} data event data
* @private
*/
emit(event: string, data: unknown): void;
/**
* create a new session and attach to ctx.sess
*
* @param {Object} [sessionData] session data
* @param {String} [externalKey] session external key
*/
protected create(sessionData?: Record<string, unknown>, externalKey?: string): void;
/**
* Commit the session changes or removal.
*/
commit({ save, regenerate }?: {
save?: boolean | undefined;
regenerate?: boolean | undefined;
}): Promise<void>;
_shouldSaveSession(): "" | "changed" | "rolling" | "renew";
/**
* remove session
* @private
*/
remove(): Promise<void>;
/**
* save session
* @private
*/
save(changed: boolean): Promise<void>;
}