next-session
Version:
Simple promise-based session for Next.js
46 lines (35 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.expressSession = expressSession;
exports.promisifyStore = promisifyStore;
var _events = require("events");
var _util = require("util");
var _memoryStore = _interopRequireDefault(require("./memory-store.cjs"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// no-op for compat
function expressSession(options) {}
function ExpressStore() {
_events.EventEmitter.call(this);
}
(0, _util.inherits)(ExpressStore, _events.EventEmitter);
expressSession.Store = ExpressStore;
function CallbackMemoryStore() {
this.store = new Map();
}
(0, _util.inherits)(CallbackMemoryStore, ExpressStore);
CallbackMemoryStore.prototype.get = (0, _util.callbackify)(_memoryStore.default.prototype.get);
CallbackMemoryStore.prototype.set = (0, _util.callbackify)(_memoryStore.default.prototype.set);
CallbackMemoryStore.prototype.destroy = (0, _util.callbackify)(_memoryStore.default.prototype.destroy);
expressSession.MemoryStore = CallbackMemoryStore;
function promisifyStore(connectStore) {
return {
get: (0, _util.promisify)(connectStore.get).bind(connectStore),
set: (0, _util.promisify)(connectStore.set).bind(connectStore),
destroy: (0, _util.promisify)(connectStore.destroy).bind(connectStore),
...(connectStore.touch && {
touch: (0, _util.promisify)(connectStore.touch).bind(connectStore)
})
};
}