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