From f08c610303232f45924a478f6393faa5d147cb99 Mon Sep 17 00:00:00 2001 From: tamasdan Date: Sun, 21 Feb 2016 21:54:40 -0500 Subject: [PATCH 1/3] Updated definition for Store, added IBaseStore --- express-session/express-session.d.ts | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/express-session/express-session.d.ts b/express-session/express-session.d.ts index 5e32e3b7e..643d1b1da 100644 --- a/express-session/express-session.d.ts +++ b/express-session/express-session.d.ts @@ -43,7 +43,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; @@ -53,20 +53,39 @@ declare module "express-session" { unset?: string; } - export interface Store { + export interface IBaseStore { + 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 interface IMemoryStore { 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 class Store implements IBaseStore { + 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 IMemoryStore, IBaseStore { 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; all: (callback: (err: any, obj: { [sid: string]: Express.Session; }) => void) => void; length: (callback: (err: any, length: number) => void) => void; clear: (callback: (err: any) => void) => void; + + 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; } } From b838896c75abbc5a0cae6d48e9521ed5ac48acaa Mon Sep 17 00:00:00 2001 From: tamasdan Date: Sun, 21 Feb 2016 23:50:27 -0500 Subject: [PATCH 2/3] Removed I from IBaseStore --- express-session/express-session.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/express-session/express-session.d.ts b/express-session/express-session.d.ts index 643d1b1da..e869f4310 100644 --- a/express-session/express-session.d.ts +++ b/express-session/express-session.d.ts @@ -53,7 +53,7 @@ declare module "express-session" { unset?: string; } - export interface IBaseStore { + export interface BaseStore { 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; @@ -67,7 +67,7 @@ declare module "express-session" { clear?: (callback: (err: any) => void) => void; } - export class Store implements IBaseStore { + export class Store implements BaseStore { constructor(config?: any); regenerate (req: express.Request, fn: (err: any) => any): void; @@ -75,7 +75,7 @@ declare module "express-session" { createSession (req: express.Request, sess: Express.Session): void; } - export class MemoryStore implements IMemoryStore, IBaseStore { + export class MemoryStore implements IMemoryStore, BaseStore { 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; From 3ca0e0306a56b3dff5e6999dbd1627bf30201cfc Mon Sep 17 00:00:00 2001 From: tamasdan Date: Sat, 27 Feb 2016 15:41:18 -0500 Subject: [PATCH 3/3] Made store an abstract class, got rid of I prefix --- connect-mongo/connect-mongo.d.ts | 2 +- express-session/express-session.d.ts | 18 +++++------------- 2 files changed, 6 insertions(+), 14 deletions(-) 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 e869f4310..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; @@ -52,14 +54,8 @@ declare module "express-session" { saveUninitialized?: boolean; unset?: string; } - - export interface BaseStore { - 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 interface IMemoryStore { + 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; @@ -67,7 +63,7 @@ declare module "express-session" { clear?: (callback: (err: any) => void) => void; } - export class Store implements BaseStore { + export abstract class Store extends node.EventEmitter { constructor(config?: any); regenerate (req: express.Request, fn: (err: any) => any): void; @@ -75,17 +71,13 @@ declare module "express-session" { createSession (req: express.Request, sess: Express.Session): void; } - export class MemoryStore implements IMemoryStore, BaseStore { + 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; all: (callback: (err: any, obj: { [sid: string]: Express.Session; }) => void) => void; length: (callback: (err: any, length: number) => void) => void; clear: (callback: (err: any) => void) => void; - - 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; } }