mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 21:00:01 +08:00
Add connect-mongo definition
This commit is contained in:
46
connect-mongo/connect-mongo-tests.ts
Normal file
46
connect-mongo/connect-mongo-tests.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
/// <reference path="connect-mongo.d.ts" />
|
||||
|
||||
import * as express from 'express';
|
||||
import * as mongoose from 'mongoose';
|
||||
import * as session from 'express-session';
|
||||
import * as connectMongo from 'connect-mongo';
|
||||
import * as mongodb from 'mongodb';
|
||||
|
||||
var app = express();
|
||||
|
||||
/// Create MongoStore
|
||||
var MongoStore = connectMongo(session);
|
||||
|
||||
/// Use MongoStore
|
||||
|
||||
// MongoUrlOptions
|
||||
app.use(session({
|
||||
secret: 'secret',
|
||||
store: new MongoStore({url: 'mongodb://localhost/test'})
|
||||
}));
|
||||
|
||||
|
||||
app.use(session({
|
||||
secret: 'secret',
|
||||
store: new MongoStore({
|
||||
url: 'mongodb://localhost/test',
|
||||
collection: "test-sessions",
|
||||
ttl: 30 * 24 * 60 * 60 // = 30 days
|
||||
})
|
||||
}));
|
||||
|
||||
// MongooseConnectionOptions
|
||||
mongoose.connect('mongodb://localhost/test')
|
||||
app.use(session({
|
||||
secret: 'secret',
|
||||
store: new MongoStore({mongooseConnection: mongoose.connection})
|
||||
}));
|
||||
|
||||
// NativeMongoOptions
|
||||
var Db = mongodb.Db
|
||||
var Server = mongodb.Server
|
||||
var mongoDb = new Db('test', new Server('localhost', 27017));
|
||||
app.use(session({
|
||||
secret: 'secret',
|
||||
store: new MongoStore({db: mongoDb})
|
||||
}));
|
||||
112
connect-mongo/connect-mongo.d.ts
vendored
Normal file
112
connect-mongo/connect-mongo.d.ts
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
// Type definitions for connect-mongo
|
||||
// Project: https://github.com/kcbanner/connect-mongo
|
||||
// Definitions by: Mizuki Yamamoto <https://github.com/Syati>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="../mongoose/mongoose.d.ts" />
|
||||
/// <reference path="../express-session/express-session.d.ts" />
|
||||
/// <reference path="../mongodb/mongodb.d.ts" />
|
||||
|
||||
declare module "connect-mongo" {
|
||||
import * as express from 'express';
|
||||
import * as mongoose from 'mongoose';
|
||||
import * as mongodb from 'mongodb';
|
||||
import * as session from 'express-session';
|
||||
|
||||
function connectMongo(connect: (options?: session.SessionOptions) => express.RequestHandler): connectMongo.MongoStoreFactory;
|
||||
|
||||
module connectMongo {
|
||||
|
||||
export interface DefaultOptions{
|
||||
/**
|
||||
* The hostname of the database you are connecting to.
|
||||
* (Default: '127.0.0.1')
|
||||
*/
|
||||
host?: string;
|
||||
|
||||
/**
|
||||
* The port number to connect to.
|
||||
* (Default: 27017)
|
||||
*/
|
||||
port?: string;
|
||||
|
||||
/**
|
||||
* (Default: false)
|
||||
*/
|
||||
autoReconnect?: boolean;
|
||||
|
||||
/**
|
||||
* (Default: true)
|
||||
*/
|
||||
ssl?: boolean;
|
||||
|
||||
/**
|
||||
* (Default: 1)
|
||||
*/
|
||||
w?: number;
|
||||
|
||||
/**
|
||||
* The colletion of the database you are connecting to.
|
||||
* (Default: sessions)
|
||||
*/
|
||||
collection?: string;
|
||||
|
||||
/**
|
||||
* Serialize sessions using JSON.stringify and deserialize them with JSON.parse.
|
||||
* (Default: true)
|
||||
*/
|
||||
stringify?: boolean;
|
||||
|
||||
/**
|
||||
* Default: false
|
||||
*/
|
||||
hash?: boolean;
|
||||
|
||||
/**
|
||||
* Default: 14 days (60 * 60 * 24 * 14)
|
||||
*/
|
||||
ttl?: number;
|
||||
|
||||
/**
|
||||
* Automatically remove expired sessions.
|
||||
* (Default: 'native')
|
||||
*/
|
||||
autoRemove?: string;
|
||||
|
||||
/**
|
||||
* (Default: 10)
|
||||
*/
|
||||
autoRemoveInterval?: number;
|
||||
}
|
||||
|
||||
export interface MongoUrlOptions extends DefaultOptions {
|
||||
url: string;
|
||||
mongoOptions?: mongoose.ConnectionOptions;
|
||||
}
|
||||
|
||||
export interface MogooseConnectionOptions extends DefaultOptions {
|
||||
mongooseConnection: mongoose.Connection;
|
||||
}
|
||||
|
||||
export interface NaitiveMongoOptions extends DefaultOptions {
|
||||
db: mongodb.Db;
|
||||
}
|
||||
|
||||
export interface MongoStoreFactory {
|
||||
new (options: MongoUrlOptions): MongoStore;
|
||||
new (options: MogooseConnectionOptions): MongoStore;
|
||||
new (options: NaitiveMongoOptions): MongoStore;
|
||||
}
|
||||
|
||||
export class MongoStore implements 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;
|
||||
length: (callback: (err: any, length: number) => void) => void;
|
||||
clear: (callback: (err: any) => void) => void;
|
||||
touch: (sid: string, session: Express.Session, callback:(err: any) => void) => void;
|
||||
}
|
||||
}
|
||||
|
||||
export = connectMongo;
|
||||
}
|
||||
Reference in New Issue
Block a user