@shopify/react-network
Version:
A collection of components that allow you to set common HTTP headers from within your React application
50 lines (43 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var cookie = require('cookie');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var cookie__default = /*#__PURE__*/_interopDefaultLegacy(cookie);
class ServerCookieManager {
constructor(cookies = {}) {
this.cookies = new Map();
const parsedCookies = typeof cookies === 'string' ? cookie__default["default"].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();
}
}
exports.ServerCookieManager = ServerCookieManager;