merge latest node-fetch-cookies version
This commit is contained in:
commit
debd1c5aca
|
@ -63,13 +63,16 @@ A class that stores cookies.
|
||||||
- `file` The path of the cookie jar on the disk.
|
- `file` The path of the cookie jar on the disk.
|
||||||
- `cookies` A [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) mapping hostnames to maps, which map cookie names to the respective [Cookie](#class-cookie) instance.
|
- `cookies` A [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) mapping hostnames to maps, which map cookie names to the respective [Cookie](#class-cookie) instance.
|
||||||
|
|
||||||
#### new CookieJar([file, flags = `rw`, cookies])
|
#### new CookieJar([file, flags = `rw`, cookies, cookieIgnoreCallback])
|
||||||
- `file` An optional string containing a relative or absolute path to the file on the disk to use.
|
- `file` An optional string containing a relative or absolute path to the file on the disk to use.
|
||||||
- `flags` An optional string specifying whether cookies should be read and/or written from/to the jar when passing it as parameter to [fetch](#fetchcookiejar-url-options). Default: `rw`
|
- `flags` An optional string specifying whether cookies should be read and/or written from/to the jar when passing it as parameter to [fetch](#fetchcookiejar-url-options). Default: `rw`
|
||||||
- `r`: only read from this jar
|
- `r`: only read from this jar
|
||||||
- `w`: only write to this jar
|
- `w`: only write to this jar
|
||||||
- `rw` or `wr`: read/write from/to this jar
|
- `rw` or `wr`: read/write from/to this jar
|
||||||
- `cookies` An optional initializer for the cookie jar - either an array of [Cookie](#class-cookie) instances or a single Cookie instance.
|
- `cookies` An optional initializer for the cookie jar - either an array of [Cookie](#class-cookie) instances or a single Cookie instance.
|
||||||
|
- `cookieIgnoreCallback(cookie, reason)` An optional callback function which will be called when a cookie is ignored instead of added to the cookie jar.
|
||||||
|
- `cookie` The cookie string
|
||||||
|
- `reason` A string containing the reason why the cookie has been ignored
|
||||||
|
|
||||||
#### addCookie(cookie[, fromURL])
|
#### addCookie(cookie[, fromURL])
|
||||||
Adds a cookie to the jar.
|
Adds a cookie to the jar.
|
||||||
|
|
2
package-lock.json
generated
2
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "flumm-fetch-cookies",
|
"name": "flumm-fetch-cookies",
|
||||||
"version": "1.3.3",
|
"version": "1.3.4",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "flumm-fetch-cookies",
|
"name": "flumm-fetch-cookies",
|
||||||
"version": "1.3.3",
|
"version": "1.3.4",
|
||||||
"description": "flumm-fetch wrapper that adds support for cookie-jars",
|
"description": "flumm-fetch wrapper that adds support for cookie-jars",
|
||||||
"main": "src/index.mjs",
|
"main": "src/index.mjs",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
|
@ -4,14 +4,11 @@ import Cookie from "./cookie.mjs";
|
||||||
import {paramError, CookieParseError} from "./errors.mjs";
|
import {paramError, CookieParseError} from "./errors.mjs";
|
||||||
|
|
||||||
export default class CookieJar {
|
export default class CookieJar {
|
||||||
constructor(file, flags = "rw", cookies) {
|
constructor(file, flags = "rw", cookies, cookieIgnoreCallback) {
|
||||||
this.flags = flags;
|
if(file && typeof file !== "string")
|
||||||
this.file = file;
|
|
||||||
this.cookies = new Map();
|
|
||||||
if(typeof this.flags !== "string")
|
|
||||||
throw paramError("First", "flags", "new CookieJar()", "string");
|
|
||||||
if(this.file && typeof this.file !== "string")
|
|
||||||
throw paramError("Second", "file", "new CookieJar()", "string");
|
throw paramError("Second", "file", "new CookieJar()", "string");
|
||||||
|
if(typeof flags !== "string")
|
||||||
|
throw paramError("First", "flags", "new CookieJar()", "string");
|
||||||
if(Array.isArray(cookies)) {
|
if(Array.isArray(cookies)) {
|
||||||
if(!cookies.every(c => c instanceof Cookie))
|
if(!cookies.every(c => c instanceof Cookie))
|
||||||
throw paramError("Third", "cookies", "new CookieJar()", "[Cookie]");
|
throw paramError("Third", "cookies", "new CookieJar()", "[Cookie]");
|
||||||
|
@ -21,6 +18,12 @@ export default class CookieJar {
|
||||||
this.addCookie(cookies);
|
this.addCookie(cookies);
|
||||||
else if(cookies)
|
else if(cookies)
|
||||||
throw paramError("Third", "cookies", "new CookieJar()", ["[Cookie]", "Cookie"]);
|
throw paramError("Third", "cookies", "new CookieJar()", ["[Cookie]", "Cookie"]);
|
||||||
|
if(cookieIgnoreCallback && typeof cookieIgnoreCallback !== "function")
|
||||||
|
throw paramError("Fourth", "cookieIgnoreCallback", "new CookieJar()", "function");
|
||||||
|
this.file = file;
|
||||||
|
this.flags = flags;
|
||||||
|
this.cookies = new Map();
|
||||||
|
this.cookieIgnoreCallback = cookieIgnoreCallback;
|
||||||
}
|
}
|
||||||
addCookie(cookie, fromURL) {
|
addCookie(cookie, fromURL) {
|
||||||
if(typeof cookie === "string") {
|
if(typeof cookie === "string") {
|
||||||
|
@ -29,8 +32,8 @@ export default class CookieJar {
|
||||||
}
|
}
|
||||||
catch(error) {
|
catch(error) {
|
||||||
if(error instanceof CookieParseError) {
|
if(error instanceof CookieParseError) {
|
||||||
console.warn("Ignored cookie: " + cookie);
|
if(this.cookieIgnoreCallback)
|
||||||
console.warn("Reason: " + error.message);
|
this.cookieIgnoreCallback(cookie, error.message);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
throw error;
|
throw error;
|
||||||
|
|
|
@ -21,7 +21,7 @@ const tests = [
|
||||||
const testResults = await Promise.all(tests.map(async t => {
|
const testResults = await Promise.all(tests.map(async t => {
|
||||||
try {
|
try {
|
||||||
t.result = await t.runTest();
|
t.result = await t.runTest();
|
||||||
if(typeof t.result !== "boolean") {
|
if(t.result !== !!t.result) {
|
||||||
t.result = false;
|
t.result = false;
|
||||||
console.error("test did not return a boolean: " + t.name);
|
console.error("test did not return a boolean: " + t.name);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user