Spaces:
Runtime error
Runtime error
; | |
var utils = require('./../utils'); | |
module.exports = ( | |
utils.isStandardBrowserEnv() ? | |
// Standard browser envs support document.cookie | |
(function standardBrowserEnv() { | |
return { | |
write: function write(name, value, expires, path, domain, secure) { | |
var 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) { | |
var 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() {} | |
}; | |
})() | |
); | |