12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- var defaults = require('./defaults');
- var isNum = require('./isNum');
- var isUndef = require('./isUndef');
- var decodeUriComponent = require('./decodeUriComponent');
- var defOpts = {
- path: '/'
- };
- function setCookie(key, val, options) {
- if (!isUndef(val)) {
- options = options || {};
- options = defaults(options, defOpts);
- if (isNum(options.expires)) {
- var expires = new Date();
- expires.setMilliseconds(
- expires.getMilliseconds() + options.expires * 864e5
- );
- options.expires = expires;
- }
- val = encodeURIComponent(val);
- key = encodeURIComponent(key);
- document.cookie = [
- key,
- '=',
- val,
- options.expires && '; expires=' + options.expires.toUTCString(),
- options.path && '; path=' + options.path,
- options.domain && '; domain=' + options.domain,
- options.secure ? '; secure' : ''
- ].join('');
- return exports;
- }
- var cookies = document.cookie ? document.cookie.split('; ') : [];
- var result = key ? undefined : {};
- for (var i = 0, len = cookies.length; i < len; i++) {
- var c = cookies[i];
- var parts = c.split('=');
- var name = decodeUriComponent(parts.shift());
- c = parts.join('=');
- c = decodeUriComponent(c);
- if (key === name) {
- result = c;
- break;
- }
- if (!key) result[name] = c;
- }
- return result;
- }
- exports = {
- get: setCookie,
- set: setCookie,
- remove: function(key, options) {
- options = options || {};
- options.expires = -1;
- return setCookie(key, '', options);
- }
- };
- module.exports = exports;
|