Skip to content

Commit

Permalink
🤖 Merge PR DefinitelyTyped#49741 [connect-mongodb-session] Update to …
Browse files Browse the repository at this point in the history
…rewritten express-session definitions by @HoldYourWaffle

* [connect-mongodb-session] Update to rewritten express-session definitions

* [connect-mongodb-session] Fix formatting
HoldYourWaffle authored Nov 24, 2020
1 parent f19234f commit ed2b815
Showing 3 changed files with 51 additions and 61 deletions.
53 changes: 27 additions & 26 deletions types/connect-mongodb-session/connect-mongodb-session-tests.ts
Original file line number Diff line number Diff line change
@@ -1,39 +1,40 @@
import * as express from 'express'
import session = require('express-session')
import connectMongo = require('connect-mongodb-session')
let MongoDBStore = connectMongo(session)
import * as express from 'express';
import session = require('express-session');
import connectMongo = require('connect-mongodb-session');

var app = express();
var store = new MongoDBStore({
uri: 'mongodb://localhost:27017/connect_mongodb_session_test',
collection: 'mySessions'
}, function(error) {
const MongoDBStore = connectMongo(session);

const app = express();
const store = new MongoDBStore({
uri: 'mongodb://localhost:27017/connect_mongodb_session_test',
collection: 'mySessions'
}, (error) => {
// some connection error occur
});

store.on('connected', function() {
store.client; // The underlying MongoClient object from the MongoDB driver
store.on('connected', () => {
store.client; // The underlying MongoClient object from the MongoDB driver
});

// Catch errors
store.on('error', function(error) {
store.on('error', (error) => {
});

app.use(require('express-session')({
secret: 'This is a secret',
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7 // 1 week
},
store: store,
// Boilerplate options, see:
// * https://www.npmjs.com/package/express-session#resave
// * https://www.npmjs.com/package/express-session#saveuninitialized
resave: true,
saveUninitialized: true
app.use(session({
secret: 'This is a secret',
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7 // 1 week
},
store,
// Boilerplate options, see:
// * https://www.npmjs.com/package/express-session#resave
// * https://www.npmjs.com/package/express-session#saveuninitialized
resave: true,
saveUninitialized: true
}));

app.get('/', function(req, res) {
res.send('Hello ' + JSON.stringify(req.session));
app.get('/', (req, res) => {
res.send('Hello ' + JSON.stringify(req.session));
});

const server = app.listen(3000);
app.listen(3000);
43 changes: 23 additions & 20 deletions types/connect-mongodb-session/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,34 @@
// Type definitions for connect-mongodb-session
// Type definitions for connect-mongodb-session 2.4
// Project: https://github.com/mongodb-js/connect-mongodb-session#readme
// Definitions by: Nattapong Sirilappanich <https://github.com/NattapongSiri>
// Ravi van Rooijen <https://github.com/HoldYourWaffle>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Minimum TypeScript Version: 3.2

/// <reference types="express-session" />

import session = require('express-session');
import * as express from 'express';
import {MongoClient, MongoClientOptions} from 'mongodb'
import { MongoClient, MongoClientOptions } from 'mongodb';

export = ConnectMongoDBSession;

declare function connect(fn : (options?: session.SessionOptions) => express.RequestHandler) : connectMongodbSession.MongoDBStore
declare function ConnectMongoDBSession(fn: typeof session): typeof ConnectMongoDBSession.MongoDBStore;

declare namespace connectMongodbSession {
export interface MongoDBStore extends session.Store {
client : MongoClient
new(connection?: ConnectionInfo, callback?: (error : Error) => void) : MongoDBStore
declare namespace ConnectMongoDBSession {
class MongoDBStore extends session.Store {
constructor(connection?: MongoDBSessionOptions, callback?: (error: Error) => void);
client: MongoClient;

get(sid: string, callback: (err: any, session?: session.SessionData | null) => void): void;
set(sid: string, session: session.SessionData, callback?: (err?: any) => void): void;
destroy(sid: string, callback?: (err?: any) => void): void;
all(callback: (err: any, obj?: session.SessionData[] | { [sid: string]: session.SessionData; } | null) => void): void;
clear(callback?: (err?: any) => void): void;
}

export interface ConnectionInfo {
idField? : string
collection : string
connectionOptions?: MongoClientOptions
databaseName?: string
expires?: number
uri : string
interface MongoDBSessionOptions {
uri: string;
collection: string;
expires?: number;
databaseName?: string;
connectionOptions?: MongoClientOptions;
idField?: string;
}
}

export = connect
16 changes: 1 addition & 15 deletions types/connect-mongodb-session/tslint.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,3 @@
{
"extends": "dtslint/dt.json",
"rules": {
"dt-header": false,
"no-misused-new": false,
"no-reference-import": false,
"no-var-keyword": false,
"no-var-requires": false,
"object-literal-shorthand": false,
"only-arrow-functions": false,
"prefer-const": false,
"semicolon": false,
"strict-export-declare-modifiers": false,
"typedef-whitespace": false,
"whitespace": false
}
"extends": "dtslint/dt.json"
}

0 comments on commit ed2b815

Please sign in to comment.