UNPKG

hono-sess

Version:

A Simple Session Middleware for Hono

39 lines (38 loc) 1.23 kB
"use strict"; import { EventEmitter } from "events"; import { Cookie } from "./cookie.js"; import { Session } from "./session.js"; export class Store extends 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(session.cookie.data); if (typeof expires === "string") { session.cookie.expires = new Date(expires); } session.cookie.originalMaxAge = originalMaxAge; req.session = new Session(req, session); return req.session; } }