UNPKG

next-session

Version:

Simple promise-based session for Next.js

34 lines (29 loc) 1.09 kB
import { EventEmitter } from "events"; import { callbackify, inherits, promisify } from "util"; import MemoryStore from "./memory-store.js"; // no-op for compat function expressSession(options) {} function ExpressStore() { EventEmitter.call(this); } inherits(ExpressStore, EventEmitter); expressSession.Store = ExpressStore; function CallbackMemoryStore() { this.store = new Map(); } inherits(CallbackMemoryStore, ExpressStore); CallbackMemoryStore.prototype.get = callbackify(MemoryStore.prototype.get); CallbackMemoryStore.prototype.set = callbackify(MemoryStore.prototype.set); CallbackMemoryStore.prototype.destroy = callbackify(MemoryStore.prototype.destroy); expressSession.MemoryStore = CallbackMemoryStore; export { expressSession }; export function promisifyStore(connectStore) { return { get: promisify(connectStore.get).bind(connectStore), set: promisify(connectStore.set).bind(connectStore), destroy: promisify(connectStore.destroy).bind(connectStore), ...(connectStore.touch && { touch: promisify(connectStore.touch).bind(connectStore) }) }; }