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.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							53 lines
						
					
					
						
							1.3 KiB
						
					
					
				'use strict'; | 
						|
 | 
						|
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() {} | 
						|
    }; | 
						|
  })() | 
						|
);
 | 
						|
 |