Go to file
2019-07-24 16:39:20 +02:00
src remove unnecessary line 2019-07-24 16:39:20 +02:00
.gitignore initial commit 2019-01-13 23:30:17 +01:00
LICENSE initial commit 2019-01-13 23:30:17 +01:00
package-lock.json update readme 2019-07-22 13:57:47 +02:00
package.json update readme 2019-07-22 13:57:47 +02:00
README.md update readme 2019-07-22 13:57:47 +02:00

node-fetch-cookies

A node-fetch wrapper with support for cookies. It supports reading/writing from/to a JSON cookie jar and keeps cookies in memory until you call CookieJar.save() to reduce disk I/O.

Usage Example

import {fetch, CookieJar} from "node-fetch-cookies";

(async () => {
    // creates a CookieJar instance
    let cookieJar = new CookieJar("rw", "jar.json");

    // usual fetch usage, except with one or multiple cookie jars as first parameter
    const response = await fetch(cookieJar, "https://google.de");

    // save the received cookies to disk
    cookieJar.save();
})();

Documentation

fetch(cookieJar, url, options)

Class: CookieJar

A class that stores cookies.

Properties

  • flags The read/write flags as specified below.
  • file The path of the cookie jar on the disk.
  • cookies A Map mapping cookie names to their properties.

new CookieJar(flags[, file, cookies])

  • flags A string specifying whether cookies should be read and/or written from/to the jar when passing it as parameter to fetch.
    • r: only read from this jar
    • w: only write to this jar
    • rw or wr: read/write from/to this jar
  • file An optional string containing a relative or absolute path to the file on the disk to use.
  • cookies An optional initializer for the cookie jar - either an array of Cookie instances or a single Cookie instance.

addCookie(cookie[, url])

Adds a cookie to the jar.

  • cookie A Cookie instance to add to the cookie jar. Alternatively this can also be a string, for example the string received from a website. In this case url should be specified.
  • url The url a cookie has been received from.

forEach(callback)

Just a wrapper for CookieJar.cookies.forEach(callback).

save()

Saves the cookie jar to disk. Only non-expired cookies are saved.

An abstract representation of a cookie.

Properties

  • name The identifier of the cookie.
  • value The value of the cookie.
  • expiry A Date object of the cookies expiry date.
  • domain The domain the cookie is valid for.
  • path The path the cookie is valid for.
  • secure A boolean value representing the cookie's secure attribute. If set the cookie will only be used for https requests.
  • subdomains A boolean value specifying whether the cookie should be used for subdomains of the domain or not.

new Cookie(cookie, url)

  • cookie The string representation of a cookie as send by a webserver.
  • url The url the cookie has been received from.

static fromObject(obj)

Creates a cookie instance from an already existing object with the same properties.

serialize()

Serializes the cookie, transforming it to name=value so it can be used in requests.

hasExpired()

Returns whether the cookie has expired or not.

isValidForRequest(url)

Returns whether the cookie is valid for a request to url. If not, it won't be send by the fetch wrapper.

License

This project is licensed under the MIT license, see LICENSE.