rauth
Version:
Authentication and Authorization library via JWT
49 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ConnectionStore_1 = require("../store/ConnectionStore");
const uuid = require("uuid");
class MemoryEngine {
constructor(option) {
this.memory = new Map();
}
async deleteById(sessionId) {
return this.memory.delete(sessionId);
}
async deleteByUserId(userId) {
const sessions = [...this.memory.entries()].filter(([, entry]) => {
return entry.userId === userId;
});
return sessions.every(([sessionId]) => this.memory.delete(sessionId));
}
async deleteByIds(sessionIds) {
const results = await Promise.all(sessionIds.map(sessionId => this.deleteById(sessionId)));
return results.every(result => result);
}
async update(register, sets) {
if (!register.sessionId)
return register;
const registerValue = this.memory.get(register.sessionId);
this.memory.set(register.sessionId, {
...registerValue,
...sets,
});
return this.memory.get(register.sessionId);
}
async findById(sessionId) {
return this.memory.get(sessionId);
}
async findByUserId(userId) {
return [...this.memory.values()].filter(register => register.userId === userId);
}
async create(sessionRegister) {
const sessionId = sessionRegister.sessionId || uuid();
this.memory.set(sessionId, {
sessionId,
...sessionRegister,
});
return this.memory.get(sessionId);
}
}
exports.MemoryEngine = MemoryEngine;
ConnectionStore_1.ConnectionStore.add('Memory', MemoryEngine);
//# sourceMappingURL=MemoryEngine.js.map