cookies-next
Version:
Set, Get, Remove cookies on both client and server side with Next.js
108 lines (107 loc) • 4.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRevalidateCookiesState = 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 () {
(0, cookie_functions_1.revalidateCookies)(onChange, previousCookies);
}, 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 useRevalidateCookiesState = function () {
var context = useCookieContext();
return function () {
context === null || context === void 0 ? void 0 : context.revalidateCookiesState();
};
};
exports.useRevalidateCookiesState = useRevalidateCookiesState;
var useReactiveCookiesNext = function () {
return {
getCookies: useReactiveGetCookies(),
getCookie: useReactiveGetCookie(),
hasCookie: useReactiveHasCookie(),
setCookie: useReactiveSetCookie(),
deleteCookie: useReactiveDeleteCookie(),
revalidateCookiesState: useRevalidateCookiesState(),
};
};
exports.useReactiveCookiesNext = useReactiveCookiesNext;