cookies.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import utils from './../utils.js';
  2. import platform from '../platform/index.js';
  3. export default platform.hasStandardBrowserEnv ?
  4. // Standard browser envs support document.cookie
  5. {
  6. write(name, value, expires, path, domain, secure) {
  7. const cookie = [name + '=' + encodeURIComponent(value)];
  8. utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
  9. utils.isString(path) && cookie.push('path=' + path);
  10. utils.isString(domain) && cookie.push('domain=' + domain);
  11. secure === true && cookie.push('secure');
  12. document.cookie = cookie.join('; ');
  13. },
  14. read(name) {
  15. const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
  16. return (match ? decodeURIComponent(match[3]) : null);
  17. },
  18. remove(name) {
  19. this.write(name, '', Date.now() - 86400000);
  20. }
  21. }
  22. :
  23. // Non-standard browser env (web workers, react-native) lack needed support.
  24. {
  25. write() {},
  26. read() {
  27. return null;
  28. },
  29. remove() {}
  30. };