flumm-fetch-cookies/README.md
jkhsjdhjs 14a874f208
generators are awesome
rewrite internal cookie storage
fix incorrect splitting of key value pairs when parsing serialized cookies
minor version bump
2019-08-13 22:19:25 +02:00

4.0 KiB

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 a serialized cookie received from a website. In this case url should be specified.
  • url The url a cookie has been received from.

addFromFile(file)

Reads a cookie jar from the disk and adds the contained cookies.

domains()

Returns an array of the domains currently stored cookies for.

*iterValidForRequest(domain, url)

Returns an iterator over all cookies valid for a request to domain and url.

*iterValid()

Returns an iterator over all valid (non-expired) cookies.

*iterAll()

Returns an iterator over all cookies currently stored.

*iter(domain)

Returns an iterator over all cookies for a specific domain.

deleteExpired()

Removes all expired cookies from the jar.

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.