UNPKG

@gentrace/core

Version:
44 lines (43 loc) 1.81 kB
"use strict"; import utils from "../utils.js"; import platform from "../platform/index.js"; export default platform.isStandardBrowserEnv ? // Standard browser envs support document.cookie (function standardBrowserEnv() { return { write: function write(name, value, expires, path, domain, secure) { const cookie = []; cookie.push(name + "=" + encodeURIComponent(value)); if (utils.isNumber(expires)) { cookie.push("expires=" + new Date(expires).toGMTString()); } if (utils.isString(path)) { cookie.push("path=" + path); } if (utils.isString(domain)) { cookie.push("domain=" + domain); } if (secure === true) { cookie.push("secure"); } document.cookie = cookie.join("; "); }, read: function read(name) { const match = document.cookie.match(new RegExp("(^|;\\s*)(" + name + ")=([^;]*)")); return match ? decodeURIComponent(match[3]) : null; }, remove: function remove(name) { this.write(name, "", Date.now() - 86400000); }, }; })() : // Non standard browser env (web workers, react-native) lack needed support. (function nonStandardBrowserEnv() { return { write: function write() { }, read: function read() { return null; }, remove: function remove() { }, }; })();