UNPKG

cookies-next

Version:

Set, Get, Remove cookies on both client and server side with Next.js

73 lines (72 loc) 2.65 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.hasCookie = exports.deleteCookie = exports.setCookie = exports.getCookie = exports.getCookies = void 0; var cookie_1 = require("cookie"); var utils_1 = require("../common/utils"); var ensureClientSide = function (options) { if (!(0, utils_1.isClientSide)(options)) { throw new Error('You are trying to access cookies on the server side. Please, use the server-side import with `cookies-next/server` instead.'); } }; var getCookies = function (_options) { ensureClientSide(_options); if ((0, utils_1.getRenderPhase)() === 'server') { return; } var cookies = {}; var documentCookies = document.cookie ? document.cookie.split('; ') : []; for (var i = 0, len = documentCookies.length; i < len; i++) { var cookieParts = documentCookies[i].split('='); var cookie = cookieParts.slice(1).join('='); var name_1 = cookieParts[0]; cookies[name_1] = cookie; } return cookies; }; exports.getCookies = getCookies; var getCookie = function (key, options) { ensureClientSide(options); var _cookies = getCookies(options); var value = _cookies === null || _cookies === void 0 ? void 0 : _cookies[key]; if (value === undefined) return undefined; return (0, utils_1.decode)(value); }; exports.getCookie = getCookie; var setCookie = function (key, data, options) { ensureClientSide(options); if ((0, utils_1.getRenderPhase)() === 'server') { return; } var _cookieOptions = options || {}; var cookieStr = (0, cookie_1.serialize)(key, (0, utils_1.stringify)(data), __assign({ path: '/' }, _cookieOptions)); document.cookie = cookieStr; }; exports.setCookie = setCookie; var deleteCookie = function (key, options) { ensureClientSide(options); setCookie(key, '', __assign(__assign({}, options), { maxAge: -1 })); }; exports.deleteCookie = deleteCookie; var hasCookie = function (key, options) { ensureClientSide(options); if (!key) return false; var cookies = getCookies(options); if (!cookies) { return false; } return Object.prototype.hasOwnProperty.call(cookies, key); }; exports.hasCookie = hasCookie;