Files
node-template-express/src/utils/session.ts
Sebastian Seedorf 689e087aef Optimize Imports
2020-11-16 00:00:29 +01:00

29 lines
774 B
TypeScript

import * as session from 'express-session';
import {Store} from 'express-session';
import {DefaultConfig, Redis} from '.';
import * as redisStore from "connect-redis";
import {RequestHandler} from 'express';
let sessionStore: Store|undefined = undefined;
function getRouter(options?: Partial<session.SessionOptions>): RequestHandler {
DefaultConfig.requireEnv('SESSION_SECRET', true);
if (Redis.client && sessionStore !== undefined) {
const RedisStore = redisStore(session);
sessionStore = new RedisStore({client: Redis.client});
}
return session({
store: sessionStore,
secret: DefaultConfig.SESSION_SECRET || 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: {secure: false},
...options,
});
}
export const Session = {
getRouter,
};