@ssports_fe/ssutils
Version:
51 lines (41 loc) • 1.15 kB
JavaScript
function decode(s) {
return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
}
/**
*
* @desc 根据name读取cookie
* @param {String} key
* @return {String}
*/
function getCookie(key, json) {
if (typeof document === 'undefined') {
return;
}
let jar = {};
// To prevent the for loop in the first place assign an empty array
// in case there are no cookies at all.
let cookies = document.cookie ? document.cookie.split('; ') : [];
let i = 0;
for (; i < cookies.length; i++) {
let parts = cookies[i].split('=');
let cookie = parts.slice(1).join('=');
if (!json && cookie.charAt(0) === '"') {
cookie = cookie.slice(1, -1);
}
try {
let name = decode(parts[0]);
cookie = decode(cookie);
if (json) {
try {
cookie = JSON.parse(cookie);
} catch (e) {}
}
jar[name] = cookie;
if (key === name) {
break;
}
} catch (e) {}
}
return key ? jar[key] : jar;
}
module.exports = getCookie;