@averjs/session
Version:
session support for averjs
7 lines (6 loc) • 1.5 kB
JavaScript
/*!
* @averjs/session v3.1.0
* Copyright 2021 Florian Weber
* Released under the MIT License.
*/
;Object.defineProperty(exports,"__esModule",{value:!0});const e=require("express-session"),r=require("ioredis"),s=require("connect-redis"),t=require("uuid"),i=require("lodash/merge");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const o=n(e),u=n(r),a=n(s),c=n(i);function d(e,r,s){var t=new Date,i={client:r,prefix:"sess-"+t.getDate()+"-"+(t.getMonth()+1)+"-"+t.getFullYear()+":",ttl:e};return c.default(i,s)}function f(e,r,s,i){var n={secret:process.env.REDIS_SECRET||t.v4(),genid:function(){return t.v4()},resave:!1,saveUninitialized:!0,cookie:{expires:new Date(Date.now()+1e3*r),maxAge:1e3*r,secure:e},store:i};return c.default(n,s)}function p(e,r){if(process.env.REDIS_PORT&&process.env.REDIS_HOST&&process.env.REDIS_PASSWORD)return new(a.default(o.default))(d(e,new u.default(parseInt(process.env.REDIS_PORT),process.env.REDIS_HOST,{password:process.env.REDIS_PASSWORD}),r))}exports.createRedisStore=p,exports.default=function(e){var r=this;if(!process.argv.includes("build")){var s=e||{},t=s.redisStoreConfig,i=s.expressSessionConfig,n=s.ttl,u=void 0===n?3600:n,a=p(u,t),c=f(this.config.isProd,u,i,a);this.aver.config.sessionStore=a,this.aver.tap("server:after-register-middlewares",(function(e){var s=e.app,t=e.middlewares;r.config.isProd&&s.set("trust proxy",1),t.push(o.default(c))}))}},exports.mergeExpressSessionConfig=f,exports.mergeRedisStoreConfig=d;