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;
|