UNPKG

cookies-next

Version:

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

116 lines (115 loc) 5.3 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.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;