@lonewolfspace/storage-manager-ts
Version:
A universal browser storage manager with optional AES encryption support for localStorage, sessionStorage, and cookies.
45 lines (44 loc) • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServerCookieManager = void 0;
const headers_1 = require("next/headers");
const base_storage_manager_1 = require("./base-storage-manager");
class ServerCookieManager extends base_storage_manager_1.BaseStorageManager {
static async setCookie(name, value, options) {
const cookieStore = await (0, headers_1.cookies)();
const encryptedValue = this.encryptValue(value);
cookieStore.set(name, encryptedValue, options);
}
static async getCookie(name) {
var _a;
const cookieStore = await (0, headers_1.cookies)();
const encryptedValue = (_a = cookieStore.get(name)) === null || _a === void 0 ? void 0 : _a.value;
if (!encryptedValue)
return undefined;
return this.decryptValue(encryptedValue);
}
static async deleteCookie(name) {
const cookieStore = await (0, headers_1.cookies)();
cookieStore.delete(name);
}
// Token-specific helpers
static async getAccessToken() {
return this.getCookie("access_token");
}
static async getRefreshToken() {
return this.getCookie("refresh_token");
}
static async setAccessToken(token, options) {
await this.setCookie("access_token", token, options);
}
static async setRefreshToken(token, options) {
await this.setCookie("refresh_token", token, options);
}
static async deleteAccessToken() {
await this.deleteCookie("access_token");
}
static async deleteRefreshToken() {
await this.deleteCookie("refresh_token");
}
}
exports.ServerCookieManager = ServerCookieManager;