cookies-next
Version:
Set, Get, Remove cookies on both client and server side with Next.js
73 lines (72 loc) • 2.65 kB
JavaScript
;
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;