coo

cookiefile

Package for operating with Netscape HTTP Cookie File using Node.JS

Showing:

Popularity

Downloads/wk

19.4K

GitHub Stars

7

Maintenance

Last Commit

5yrs ago

Contributors

1

Package

Dependencies

2

Size (min+gzip)

2.1KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

node-cookiefile

Package for operating with Netscape HTTP Cookie File using Node.JS

It can read and create Netscape HTTP Cookie File like this:

# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by node-httpcookie! Edit at your own risk

#HttpOnly_horatius.pro  FALSE   /   FALSE   0   httpOnlyCookie  httponly
horatius.pro    false   /   false   0   testKey testValue
google.com   false  /   false   0   secondKey   secondValue

In addition to this it can read and create HTTP Response and Request (only generate) headers:

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
Cookie: name=value; test=horatius

Max-Age and Same-Site directives is not supported in actual version If you are interested to use it please make pull request

Install

npm install cookiefile --save

Usage

Loading library

let {Cookie, CookieMap, CookieError} = require('http-cookiefile')

It will provide JavaScript Map object with overloaded .set method

let cookie = new Cookie({
    domain: ".google.com",
    name: "testKey",
    value: "textValue",
    https: false, // default
    httpOnly: false, //default
    crossDomain: false, // default
    expire: Date.now() + 600 // default: 0
});

Reading Netscape Cookiefile

You can just enter your cookiefile path to load it into Map object

let cookieFile = new CookieMap('curl.cookiefile');

Or you can initialize it

let cookieFile = new CookieFile([
    cookie // Here is array of Cookie objects
]);

To read from Set-Cookie response header please use header method of CookieMap

const cookiesParsed = new CookieMap();
cookiesParsed.header('Set-Cookie: id=a3fWa');

Also, you can load cookie from request header Cookie: a=b;d=c:

const requestParsed = new CookieMap();

let options = {
    domain: ".google.com",
    secure: true,
}; // Options, which will be send to Cookie constructor

CookieMap.generate('Cookie: a=b;d=c', {htt})

Adding new cookies

Overloaded Map.set method. It will get name for the row from cookie object

cookieFile.set(cookie);

Reading values

You are able to use default Map methods like get, has, clear, and others.

let cookieValue = cookieFile.get('testKey')

You can specify new name for new cookiefile. If you create CookieMap using filename it will be used by default.

cookieFile.save('new.cookiefile');
cookieFile.save(); // If you had specify filename when create object

toString methods

You are able to use toString methods for Cookie object

cookie.toString()

will return string like

google.com   false  /   false   0   secondKey   secondValue

For CookieMap toString is available too

cookieFile.toString();

will return string will full cookiefile

In addition to this you are able to use toRequestHeader and toResponseHeader method of CookieMap and Cookie objects:

cookieFile.toRequestHeader({http: true, secure:false});
cookieFile.toResponseHeader();

It will generate something like this:

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
Cookie: name=value; test=horatius

Tests

You are able to test this package using mocha

git clone https://github.com/horat1us/node-cookiefile
cd node-cookiefile
npm install
npm test

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100