cooky is a lightweight library that is used as a wrapper around the native JS cookie handling system.
It encapsulates all necessary methods in an handy object instead of using document.cookie in that fancily strange manner (aka document.cookie = "mynewcookie=pingas" to add a cookie and document.cookie to get the whole cookie string).
First, download the library either from github or npm (npm i -S cooky).
Then import/load it :
//es >= 6
import { Cooky } from "cooky"//node
const { Cooky } = require("cooky");<!-- as a script tag -->
<!DOCTYPE html>
<html>
<head>
<!-- [...] -->
<script src="path/to/cooky.js"></script>
</head>
<body>
<!-- [...] -->
</body>
</html>Then you'll be able to use it (either as cooky.Cooky or Cooky for in-browser use).
Cooky.has(name : String)
Determines whether or not there's a cookie associated to the given name.
Warning: Throws an error if name is not a String
Cooky.getAll()
Retrieves the cookies as an array of objects that follow the following pattern:
{
name: String,
value: String
}Warning: Throws an error if there has been a problem while parsing the cookie string.
Cooky.getAllAsObject()
Retrieves the cookies, but instead of returning an array of object, it returns an objects that has the names of the cookies as keys and their respective values as values.
Cooky.getAllAsMap()
Retrieves the cookies just like getAllAsObject but send back a Map insted of a regular Object (only if available, otherwise it would throw an error).
Cooky.get(name : String)
Retrieves the cookie that has name as its name.
Warning: Will throw an exception if name is not a String.
Cooky.set(name : String, value : String)
Creates a new cookie that corresponds to name=value;
NB: You can chain set
Since the source code of cooky was written using ES6+ syntax and transpiled using babel and its preset env with default settings, the compatibilities are the one you obtain from transpiling using env with its default settings.
In version 2.1.0, the cookie parsing algorithm has been revisited to allow parsing of object-like cookies and use of decodeURIComponent for some backend technologies.