You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.0 KiB
43 lines
1.0 KiB
2 months ago
|
import utils from './../utils.js';
|
||
|
import platform from '../platform/index.js';
|
||
|
|
||
|
export default platform.hasStandardBrowserEnv ?
|
||
|
|
||
|
// Standard browser envs support document.cookie
|
||
|
{
|
||
|
write(name, value, expires, path, domain, secure) {
|
||
|
const cookie = [name + '=' + encodeURIComponent(value)];
|
||
|
|
||
|
utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
|
||
|
|
||
|
utils.isString(path) && cookie.push('path=' + path);
|
||
|
|
||
|
utils.isString(domain) && cookie.push('domain=' + domain);
|
||
|
|
||
|
secure === true && cookie.push('secure');
|
||
|
|
||
|
document.cookie = cookie.join('; ');
|
||
|
},
|
||
|
|
||
|
read(name) {
|
||
|
const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
|
||
|
return (match ? decodeURIComponent(match[3]) : null);
|
||
|
},
|
||
|
|
||
|
remove(name) {
|
||
|
this.write(name, '', Date.now() - 86400000);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
:
|
||
|
|
||
|
// Non-standard browser env (web workers, react-native) lack needed support.
|
||
|
{
|
||
|
write() {},
|
||
|
read() {
|
||
|
return null;
|
||
|
},
|
||
|
remove() {}
|
||
|
};
|
||
|
|