UNPKG

next-client-cookies

Version:

SSR and client support for Next.js v13 cookies (app directory)

46 lines 1.34 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); const storage = typeof global === "object" ? global.__COOKIES_STORAGE__ = global.__COOKIES_STORAGE__ || /* @__PURE__ */ new Map() : null; const storeSecureCookies = /* @__PURE__ */ __name((secureValue) => { let value; do { value = Math.random(); } while (storage?.has(value)); if (storage) { storage.set(value, { value: secureValue, time: Date.now() }); setCleanupTimeout(); } return value; }, "storeSecureCookies"); const useSecureCookies = /* @__PURE__ */ __name((value) => storage?.get(value)?.value, "useSecureCookies"); let timeout = null; const CLEANUP_TTL_MS = 5e3; const setCleanupTimeout = /* @__PURE__ */ __name(() => { if (timeout) { return; } timeout = setTimeout(cleanup, CLEANUP_TTL_MS * 2); }, "setCleanupTimeout"); const cleanup = /* @__PURE__ */ __name(() => { clearTimeout(timeout); timeout = null; if (!storage) return; const now = Date.now(); for (const [key, { time }] of storage.entries()) { if (now - time > CLEANUP_TTL_MS) { storage.delete(key); } } if (storage.size) { setCleanupTimeout(); } }, "cleanup"); export { storeSecureCookies, useSecureCookies }; //# sourceMappingURL=secure.mjs.map