UNPKG

@t2ee/cookieman

Version:
64 lines 2.68 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments)).next()); }); }; const Cookie_1 = require("./Cookie"); const Redis = require("redis"); class MemoryStore { constructor(uri, prefix) { this.prefix = prefix; this.redis = Redis.createClient(uri); } get(key) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { this.redis.get(this.prefix + key, (err, result) => { if (err) return reject(err); const cookie = new Cookie_1.default(); const data = JSON.parse(result); if (!data) return resolve(cookie); cookie.key = data.key; cookie.expires = new Date(data.expires); cookie.data = data.data; cookie.path = data.path; cookie.domain = data.domain; cookie.secure = data.secure ? true : false; cookie.httpOnly = data.httpOnly ? true : false; resolve(cookie); }); }); }); } set(cookie) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { this.redis.setex(this.prefix + cookie.key, Math.round((cookie.expires.getTime() - Date.now()) / 1000), JSON.stringify(cookie), err => { if (err) return reject(err); resolve(); }); }); }); } remove(cookie) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { this.redis.del(this.prefix + cookie.key, err => { if (err) return reject(err); resolve(); }); }); }); } } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = MemoryStore; //# sourceMappingURL=RedisStore.js.map