diff --git a/connect-mongo/connect-mongo.d.ts b/connect-mongo/connect-mongo.d.ts index ece75973a..cb39d42cf 100644 --- a/connect-mongo/connect-mongo.d.ts +++ b/connect-mongo/connect-mongo.d.ts @@ -99,7 +99,7 @@ declare module "connect-mongo" { new (options: NaitiveMongoOptions): MongoStore; } - export class MongoStore implements session.Store { + export class MongoStore extends session.Store { get: (sid: string, callback: (err: any, session: Express.Session) => void) => void; set: (sid: string, session: Express.Session, callback: (err: any) => void) => void; destroy: (sid: string, callback: (err: any) => void) => void; diff --git a/express-session/express-session.d.ts b/express-session/express-session.d.ts index 5e32e3b7e..035a36bce 100644 --- a/express-session/express-session.d.ts +++ b/express-session/express-session.d.ts @@ -4,6 +4,7 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped /// +/// declare module Express { @@ -36,6 +37,7 @@ declare module Express { declare module "express-session" { import express = require('express'); + import node = require('events'); function session(options?: session.SessionOptions): express.RequestHandler; @@ -43,7 +45,7 @@ declare module "express-session" { export interface SessionOptions { secret: string; name?: string; - store?: Store; + store?: Store | MemoryStore; cookie?: express.CookieOptions; genid?: (req: express.Request) => string; rolling?: boolean; @@ -52,15 +54,24 @@ declare module "express-session" { saveUninitialized?: boolean; unset?: string; } - - export interface Store { + + export interface BaseMemoryStore { get: (sid: string, callback: (err: any, session: Express.Session) => void) => void; set: (sid: string, session: Express.Session, callback: (err: any) => void) => void; destroy: (sid: string, callback: (err: any) => void) => void; length?: (callback: (err: any, length: number) => void) => void; clear?: (callback: (err: any) => void) => void; } - export class MemoryStore implements Store { + + export abstract class Store extends node.EventEmitter { + constructor(config?: any); + + regenerate (req: express.Request, fn: (err: any) => any): void; + load (sid: string, fn: (err: any, session: Express.Session) => any): void; + createSession (req: express.Request, sess: Express.Session): void; + } + + export class MemoryStore implements BaseMemoryStore { get: (sid: string, callback: (err: any, session: Express.Session) => void) => void; set: (sid: string, session: Express.Session, callback: (err: any) => void) => void; destroy: (sid: string, callback: (err: any) => void) => void;