From 83a640e9fb7ea71f6fdb1fa1bb9a368b34353ad9 Mon Sep 17 00:00:00 2001 From: jkhsjdhjs Date: Mon, 22 Jul 2019 13:52:54 +0200 Subject: [PATCH] allow cookieJars to be null in fetch wrapper version bump --- package-lock.json | 2 +- package.json | 2 +- src/index.mjs | 32 +++++++++++++++++--------------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b7efd6..01712d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "node-fetch-cookies", - "version": "1.0.3", + "version": "1.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6a3c192..b13b766 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-fetch-cookies", - "version": "1.0.4", + "version": "1.0.5", "description": "node-fetch wrapper that adds support for cookie-jars", "main": "src/index.mjs", "engines": { diff --git a/src/index.mjs b/src/index.mjs index 6d4db33..3eff5a1 100644 --- a/src/index.mjs +++ b/src/index.mjs @@ -4,24 +4,26 @@ import Cookie from "./cookie"; async function cookieFetch(cookieJars, url, options) { let cookies = ""; - if(Array.isArray(cookieJars) && cookieJars.every(c => c instanceof CookieJar)) { - cookieJars.forEach(jar => { - if(!jar.flags.includes("r")) - return; - jar.forEach(c => { + if(cookieJars) { + if(Array.isArray(cookieJars) && cookieJars.every(c => c instanceof CookieJar)) { + cookieJars.forEach(jar => { + if(!jar.flags.includes("r")) + return; + jar.forEach(c => { + if(c.isValidForRequest(url)) + cookies += c.serialize() + "; "; + }); + }); + } + else if(cookieJars instanceof CookieJar && cookieJars.flags.includes("r")) { + cookieJars.forEach(c => { if(c.isValidForRequest(url)) cookies += c.serialize() + "; "; }); - }); + } + else + throw new TypeError("First paramter is neither a cookie jar nor an array of cookie jars!"); } - else if(cookieJars instanceof CookieJar && cookieJars.flags.includes("r")) { - 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) { if(!options) { options = { @@ -35,7 +37,7 @@ async function cookieFetch(cookieJars, url, options) { 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"]; - if(cookies) { + if(cookies && cookieJars) { if(Array.isArray(cookieJars)) { cookieJars.forEach(jar => { if(!jar.flags.includes("w"))