koekiemonster
Version:
Browser and Nodejs compatible cookie interface
80 lines (55 loc) • 2.45 kB
Markdown
# koekiemonster
A node.js compatible version of `cookie-monster`, which is a clone of
`cookie-cutter`. We must fork deeper yessss?
## Installation
The package is released in the public npm registry as `koekiemonster` which is
the dutch name for `cookie monster` and can be installed by running:
```
npm install --save koekiemonster
```
## API
The module returns a single function that requires a reference to document. If
you are in a Node.js environment you can pass in a object instead and it should
still function as intended.
```js
var cookie = require('koekiemonster')(document, { /* advanced options */ });
var times = parseInt(cookie.getItem('times'), 10) || 0;
cookie.setItem('times', times + 1);
```
The first argument is a reference to the `document` so it can access `document.cookie`
the second argument is an object for advanced options. This allows you to specify
a custom `read` and `write` method for cookies.
- `read` Called when it needs to read all cookies and expects an array to be
returned with `key=cookie` strings for each cookie.
- `write` Called when a cookie needs to be stored, with `cookie`, and `meta`
as arguments. Assumes it returns the cookie string once it's stored. The `meta`
is an object that contains the following properties:
- `remove` Boolean indicating if this is a removal request.
- `value` Cookie value.
- `key` Key of the cookie.
- `opts` Original supplied options.
It's worth noting that if you do not supply `document` as first argument we
will attempt to feature detect the existance of `document` and `document.cookie`
automatically and default to that. In the case where it's missing, we will
default to an empty object so the following will work fine in a browser based
environment:
```js
var cookie = require('koekiemonster')();
console.log(cookie.getItem('items')); // should output the same as above.
```
### getItem(key)
Return the contents of a cookie for the given key name.
### setItem(key, value, opts)
Set a new cookie with the given key as name and value as contents. You can use
the `opts` object to configure the cookie string.
- `expires` Sets the expiree of the cookie.
- `path` Path of the cookie.
- `domain` Domain of the cookie.
- `secure` Should the cookie be secure only.
### removeItem(key, opts)
Remove a cookie with the name of the key. You can use the same `opts` as the
`setItem` method.
#### clear
Remove all cookies.
## License
MIT/X11