UNPKG

alinea

Version:
52 lines (50 loc) 1.18 kB
// node_modules/cookie-es/dist/index.mjs function parse(str, options) { if (typeof str !== "string") { throw new TypeError("argument str must be a string"); } const obj = {}; const opt = options || {}; const dec = opt.decode || decode; let index = 0; while (index < str.length) { const eqIdx = str.indexOf("=", index); if (eqIdx === -1) { break; } let endIdx = str.indexOf(";", index); if (endIdx === -1) { endIdx = str.length; } else if (endIdx < eqIdx) { index = str.lastIndexOf(";", eqIdx - 1) + 1; continue; } const key = str.slice(index, eqIdx).trim(); if (opt?.filter && !opt?.filter(key)) { index = endIdx + 1; continue; } if (void 0 === obj[key]) { let val = str.slice(eqIdx + 1, endIdx).trim(); if (val.codePointAt(0) === 34) { val = val.slice(1, -1); } obj[key] = tryDecode(val, dec); } index = endIdx + 1; } return obj; } function decode(str) { return str.includes("%") ? decodeURIComponent(str) : str; } function tryDecode(str, decode2) { try { return decode2(str); } catch { return str; } } export { parse };