fixes to get it working

This commit is contained in:
2019-01-14 04:30:38 +01:00
parent d92f8d3564
commit f6c3ba8a61
3 changed files with 36 additions and 14 deletions

View File

@@ -9,16 +9,30 @@ export default {
cookieJars.forEach(jar => {
if(!jar.flags.includes("r"))
return;
jar.forEach(c => c.isValidForRequest(url) && (cookies += c.serialize() + "; "));
jar.forEach(c => {
if(c.isValidForRequest(url))
cookies += c.serialize() + "; ";
});
});
}
else if(cookieJars instanceof CookieJar && cookieJars.flags.includes("r")) {
cookieJars.forEach(c => c.isValidForRequest(url) && (cookies += c.serialize() + "; "));
cookieJars.forEach(c => {
if(c.isValidForRequest(url))
cookies += c.serialize() + "; ";
});
}
else
throw new TypeError("Third paramter is neither a cookie jar nor an array of cookie jars!");
if(cookies.length !== 0)
options.headers["Cookie"] = cookies.slice(0, -2);
if(cookies.length !== 0) {
if(!options) {
options = {
headers: {}
};
}
if(!options.headers)
options.headers = {};
options.headers.cookie = cookies.slice(0, -2);
}
const result = await fetch(url, options);
// i cannot use headers.get() here because it joins the cookies to a string
cookies = result.headers[Object.getOwnPropertySymbols(result.headers)[0]]["set-cookie"];
@@ -27,13 +41,14 @@ export default {
cookieJars.forEach(jar => {
if(!jar.flags.includes("w"))
return;
cookies.forEach(c => jar.addCookie(c));
cookies.forEach(c => jar.addCookie(c, url));
});
}
else if(cookieJars.flags.includes("w")) {
cookies.forEach(c => cookieJars.addCookie(c));
cookies.forEach(c => cookieJars.addCookie(c, url));
}
}
return result;
},
CookieJar: CookieJar,
Cookie: Cookie