diff --git a/types/koa-generic-session/index.d.ts b/types/koa-generic-session/index.d.ts index f3a84e7b20..1bd8f366e0 100644 --- a/types/koa-generic-session/index.d.ts +++ b/types/koa-generic-session/index.d.ts @@ -1,13 +1,15 @@ // Type definitions for koa-generic-session 1.x // Project: https://github.com/koajs/generic-session -// Definitions by: Nick Simmons +// Definitions by: Nick Simmons , Ragg // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 import * as Koa from "koa"; declare namespace koaSession { interface Session { cookie: any; + [key: string]: any; } interface SessionIdStore { @@ -50,5 +52,13 @@ declare namespace koaSession { const MemoryStore: SessionStore; } +declare module 'koa' { + interface Context { + session: koaSession.Session|null; + sessionSave: boolean|null; + regenerateSession(): Generator; + } +} + declare function koaSession(options: koaSession.SessionOptions): Koa.Middleware; export = koaSession; diff --git a/types/koa-generic-session/koa-generic-session-tests.ts b/types/koa-generic-session/koa-generic-session-tests.ts index fb8d69b0e0..e9a4f94232 100644 --- a/types/koa-generic-session/koa-generic-session-tests.ts +++ b/types/koa-generic-session/koa-generic-session-tests.ts @@ -32,4 +32,16 @@ app.use(session({ beforeSave: (ctx: Koa.Context, session: Session) => {} })); +app.use((context: Koa.Context) => { + if (! context.session) { + return; + } + + context.regenerateSession(); + context.sessionSave = true; + context.session.cookie; + context.session['key'] = 'value'; + context.session = null; +}); + app.listen(80);