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')
Creating Cookie Object
It will provide JavaScript Map object with overloaded .set
method
let cookie = new Cookie({
domain: ".google.com",
name: "testKey",
value: "textValue",
https: false,
httpOnly: false,
crossDomain: false,
expire: Date.now() + 600
});
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
]);
To read from Set-Cookie
response header please use header
method of CookieMap
const cookiesParsed = new CookieMap();
cookiesParsed.header('Set-Cookie: id=a3fWa');
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')
Saving NetScape Cookie file
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();
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