UNPKG

sessionize-auth

Version:

A flexible session management library for React, Next.js, Angular, and React Native

40 lines (36 loc) 968 B
import Cookies from "js-cookie"; import { SessionStore } from "../core/types"; /** * Cookies session store */ export function createCookiesStore<T>(key: string = "account"): SessionStore<T> { return { get: (): T | null => { try { const cookie = Cookies.get(key); return cookie ? JSON.parse(cookie) : null; } catch (error) { console.warn("Failed to parse cookie data:", error); return null; } }, set: (account: T): void => { try { Cookies.set(key, JSON.stringify(account), { secure: true, sameSite: "Strict", expires: 7 // 7 days }); } catch (error) { console.error("Failed to save to cookies:", error); } }, remove: (): void => { try { Cookies.remove(key); } catch (error) { console.error("Failed to remove from cookies:", error); } } }; }