cookies-next
Version:
Set, Get, Remove cookies on both client and server side with Next.js
116 lines (115 loc) • 5.3 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.useReactiveHasCookie = exports.useReactiveDeleteCookie = exports.useReactiveSetCookie = exports.useReactiveGetCookie = exports.useReactiveGetCookies = exports.useReactiveCookiesNext = exports.useCookiesNext = exports.useHasCookie = exports.useDeleteCookie = exports.useSetCookie = exports.useGetCookie = exports.useGetCookies = exports.useCookiesPolling = void 0;
var context_1 = require("./context");
var react_1 = require("react");
var cookie_functions_1 = require("./cookie-functions");
var useWrappedCookieFn = function (cookieFnCb) {
var _a = (0, react_1.useState)(false), isMounted = _a[0], setIsMounted = _a[1];
(0, react_1.useEffect)(function () {
setIsMounted(true);
}, []);
return isMounted ? cookieFnCb : (function () { });
};
var useCookieContext = function () {
var context = (0, react_1.useContext)(context_1.CookieContext);
if (!context) {
throw new Error('useCookieContext must be used within a CookieProvider');
}
return context;
};
var useCookiesPolling = function (onChange, pollingOptions) {
var _a = pollingOptions || {}, _b = _a.intervalMs, intervalMs = _b === void 0 ? 1000 : _b, _c = _a.enabled, enabled = _c === void 0 ? false : _c;
(0, react_1.useEffect)(function () {
if (!enabled) {
return;
}
var previousCookies = (0, cookie_functions_1.getCookies)();
var interval = setInterval(function () {
var currentCookies = (0, cookie_functions_1.getCookies)();
var hasChanged = Object.keys(__assign(__assign({}, currentCookies), previousCookies)).some(function (key) { return (currentCookies === null || currentCookies === void 0 ? void 0 : currentCookies[key]) !== (previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies[key]); });
if (hasChanged) {
onChange(currentCookies);
previousCookies = currentCookies;
}
}, intervalMs);
return function () { return clearInterval(interval); };
}, [onChange, intervalMs]);
};
exports.useCookiesPolling = useCookiesPolling;
var useGetCookies = function () { return useWrappedCookieFn(cookie_functions_1.getCookies); };
exports.useGetCookies = useGetCookies;
var useGetCookie = function () { return useWrappedCookieFn(cookie_functions_1.getCookie); };
exports.useGetCookie = useGetCookie;
var useHasCookie = function () { return useWrappedCookieFn(cookie_functions_1.hasCookie); };
exports.useHasCookie = useHasCookie;
var useSetCookie = function () { return useWrappedCookieFn(cookie_functions_1.setCookie); };
exports.useSetCookie = useSetCookie;
var useDeleteCookie = function () { return useWrappedCookieFn(cookie_functions_1.deleteCookie); };
exports.useDeleteCookie = useDeleteCookie;
var useCookiesNext = function () {
return {
getCookies: useGetCookies(),
getCookie: useGetCookie(),
hasCookie: useHasCookie(),
setCookie: useSetCookie(),
deleteCookie: useDeleteCookie(),
};
};
exports.useCookiesNext = useCookiesNext;
var useReactiveGetCookies = function () {
var context = useCookieContext();
return function (_options) { return context === null || context === void 0 ? void 0 : context.getAll(); };
};
exports.useReactiveGetCookies = useReactiveGetCookies;
var useReactiveGetCookie = function () {
var context = useCookieContext();
return function (key, _options) {
return context === null || context === void 0 ? void 0 : context.get(key);
};
};
exports.useReactiveGetCookie = useReactiveGetCookie;
var useReactiveSetCookie = function () {
var context = useCookieContext();
return function (key, data, _options) {
context === null || context === void 0 ? void 0 : context.set(key, data);
return (0, cookie_functions_1.setCookie)(key, data);
};
};
exports.useReactiveSetCookie = useReactiveSetCookie;
var useReactiveDeleteCookie = function () {
var context = useCookieContext();
return function (key, _options) {
context === null || context === void 0 ? void 0 : context.delete(key);
return (0, cookie_functions_1.deleteCookie)(key);
};
};
exports.useReactiveDeleteCookie = useReactiveDeleteCookie;
var useReactiveHasCookie = function () {
var context = useCookieContext();
return function (key, _options) {
return context === null || context === void 0 ? void 0 : context.has(key);
};
};
exports.useReactiveHasCookie = useReactiveHasCookie;
var useReactiveCookiesNext = function () {
return {
getCookies: useReactiveGetCookies(),
getCookie: useReactiveGetCookie(),
hasCookie: useReactiveHasCookie(),
setCookie: useReactiveSetCookie(),
deleteCookie: useReactiveDeleteCookie(),
};
};
exports.useReactiveCookiesNext = useReactiveCookiesNext;