hono-sess
Version:
A Simple Session Middleware for Hono
42 lines • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Store = void 0;
const events_1 = require("events");
const cookie_1 = require("./cookie");
const session_1 = require("./session");
class Store extends events_1.EventEmitter {
constructor() {
super();
}
regenerate(req, callback) {
const self = this;
this.destroy(req.sessionID, (err) => {
self.generate(req);
callback(err);
});
}
load(sid, callback) {
const self = this;
this.get(sid, (err, session) => {
if (err)
return callback(err);
if (!session)
return callback('session not found');
const req = { sessionID: sid, sessionStore: self };
callback(null, this.createSession(req, session));
});
}
createSession(req, session) {
const expires = session.cookie.expires;
const originalMaxAge = session.cookie.originalMaxAge;
session.cookie = new cookie_1.Cookie(session.cookie.data);
if (typeof expires === 'string') {
session.cookie.expires = new Date(expires);
}
session.cookie.originalMaxAge = originalMaxAge;
req.session = new session_1.Session(req, session);
return req.session;
}
}
exports.Store = Store;
//# sourceMappingURL=store.js.map