Add easy-session types

This commit is contained in:
Karl Düüna
2015-04-14 18:37:20 +03:00
parent ed38db403a
commit 97acde7b99
2 changed files with 104 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
/// <reference path="./easy-session.d.ts" />
/// <reference path="../express-session/express-session.d.ts" />
/// <reference path="../cookie-parser/cookie-parser.d.ts" />
import express = require('express');
import session = require('express-session');
import cookieParser = require('cookie-parser');
import easySession = require('easy-session'); // Require the module : line 1
var app = express();
app.use(cookieParser('secreet'));
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}));
app.use(easySession.main(session));
app.get('/login', function (req, res, next) {
req.session.login('user', {email: 'email'}, function (err) {
if(err) {
res.send(500);
return;
}
res.send(200);
});
});
app.post('/logout', function (req, res, next) {
req.session.logout(function (err) {
if(err) {
res.send(500);
return;
}
res.send(200);
});
});
app.get('/isloggedin', function (req, res, next) {
res.send(req.session.isLoggedIn('user'));
});
app.get('/isfresh', function (req, res, next) {
res.send(req.session.isFresh());
});
app.get('/hasrole', function (req, res, next) {
res.send(req.session.hasRole('user'));
});
app.post('/setrole', function (req, res, next) {
req.session.setRole(req.query.role);
res.send(200);
});
app.get('/getrole', function (req, res, next) {
res.send(req.session.getRole());
});
app.use(easySession.isLoggedIn());
app.use(easySession.isFresh());
app.use(easySession.checkRole('user'));
+41
View File
@@ -0,0 +1,41 @@
// Type definitions for easy-session
// Project: https://github.com/DeadAlready/node-easy-session
// Definitions by: Karl Düüna <https://github.com/DeadAlready/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../express/express.d.ts" />
declare module Express {
interface ErrorCallback {
(err?: any): void;
}
export interface Session {
login(callback: Function);
login(extend: Object, callback: ErrorCallback);
login(role: string, callback: ErrorCallback);
login(role: string, extend: Object, callback: ErrorCallback);
logout(callback: ErrorCallback): void;
isLoggedIn(role?: string): boolean;
isGuest(): boolean;
isFresh(): boolean;
setRole(role: string): Session;
getRole(): string;
hasRole(role: string): boolean;
}
}
declare module "easy-session" {
import express = require('express');
interface SessionOptions {
ipCheck?: boolean;
uaCheck?: boolean;
freshTimeout?: number;
maxFreshTimeout?: number;
}
export function main(session: any, options?: SessionOptions): express.RequestHandler;
export function isLoggedIn(errorCallback?: Function): express.RequestHandler;
export function isFresh(errorCallback?: Function): express.RequestHandler;
export function checkRole(role: string, errorCallback?: Function): express.RequestHandler;
}