Skip to content

Commit

Permalink
feat(express-session): add express-session middleware
Browse files Browse the repository at this point in the history
  • Loading branch information
wbhob committed Nov 23, 2017
1 parent 9c02854 commit efbfc34
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 0 deletions.
36 changes: 36 additions & 0 deletions src/express-session/index.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { ExpressSessionMiddleware } from './index';
import { expect } from 'chai';

describe('ExpressSessionMiddleware', () => {
let middleware: ExpressSessionMiddleware;
describe('properly configured', () => {
beforeEach(() => {
ExpressSessionMiddleware.configure({
secret: 'hi',
});
middleware = new ExpressSessionMiddleware();
});

it('should be defined', () => {
expect(middleware).to.not.be.undefined;
});

it('should have a function called resolve', () => {
expect(middleware.resolve).to.be.instanceof(Function);
});

it('should should return a middleware from calling resolve', () => {
expect(middleware.resolve()).to.be.an.instanceof(Function);
});
afterEach(() => {
ExpressSessionMiddleware.configure(undefined);
});
});

describe('not configured', () => {
middleware = new ExpressSessionMiddleware();
it('should should return a middleware from calling resolve', () => {
expect(middleware.resolve()).to.be.an.instanceof(Function);
});
});
});
24 changes: 24 additions & 0 deletions src/express-session/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import * as expressSession from 'express-session';

import { Middleware, NestMiddleware } from '@nestjs/common';

import { RequestHandler } from 'express';

@Middleware()
export class ExpressSessionMiddleware implements NestMiddleware {

// DELETE THESE LINES IF MIDDLEWARE DOES NOT TAKE OPTIONS
public static configure(opts: expressSession.SessionOptions) {
this.options = opts;
}

private static options: expressSession.SessionOptions;

public resolve(...args: any[]): RequestHandler {
if (ExpressSessionMiddleware.options) {
return expressSession(ExpressSessionMiddleware.options);
} else {
return expressSession();
}
}
}
28 changes: 28 additions & 0 deletions src/express-session/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "@nest-middlewares/express-session",
"version": "1.0.0",
"description": "NestJS Middleware for Express Session",
"main": "index",
"repository": {
"type": "git",
"url": "git+https://github.com/wbhob/nest-middlewares.git"
},
"keywords": [
"nest",
"middlewares",
"express",
"node"
],
"author": "Wilson Hobbs <[email protected]>",
"license": "MIT",
"bugs": {
"url": "https://github.com/wbhob/nest-middlewares/issues"
},
"homepage": "https://github.com/wbhob/nest-middlewares#readme",
"peerDependencies": {
"@nestjs/common": "^4.0.0"
},
"dependencies": {
"express-session": "^1.15.6"
}
}

0 comments on commit efbfc34

Please sign in to comment.