UNPKG

@gentrace/core

Version:
55 lines (45 loc) 1.51 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() {}, }; })();