UNPKG

@shopify/react-network

Version:

A collection of components that allow you to set common HTTP headers from within your React application

42 lines (39 loc) 946 B
import cookie from 'cookie'; class ServerCookieManager { constructor(cookies = {}) { this.cookies = new Map(); const parsedCookies = typeof cookies === 'string' ? cookie.parse(cookies) : cookies; Object.entries(parsedCookies).forEach(([key, value]) => { this.setCookie(key, value); }); } getCookie(name) { const cookie = this.cookies.get(name); return cookie && cookie.value; } getCookies() { const cookies = {}; for (const [key, value] of this.cookies) { cookies[key] = value; } return { ...cookies }; } setCookie(name, value) { const fullCookie = typeof value === 'string' ? { value } : value; this.cookies.set(name, fullCookie); } removeCookie(name) { this.cookies.set(name, { value: '', expires: new Date('Thu, 01 Jan 1970 00:00:01 GMT') }); } clear() { this.cookies.clear(); } } export { ServerCookieManager };