cookie-api v2.0.2
Cookie API
A handy set of APIs to manage browser cookies.
Why cookie-api
- You Can use it in NodeJs or any Browser.
- You don't have to worry about character encoding.
- dependency-free.
- JSON support out of the box.
- Base64 encoding/decoding out of the box.
- Pre-compressed version included.
- Tiny (2.8 kb UMD minified).
- Available through NPM or JsDelivr CDN.
- Available as API style and Builder class style.
- Compatible with Angular, React and Vue.
- Strictly typed, build with the lovely TypeScript ❤️.
API style
API is a set of functions for adding reading deleting cookies and so on.
API functions
| Function | Definition |
|---|---|
| addCookie | Add a new cookie to the document only if no cookie exists with the same name. |
| setCookie | Set a new cookie to the document, this will override any existing cookie with the same name. |
| getAllCookies | Get all visible cookies as { name: value } pairs. |
| getCookie | Get cookie's value by its name or return the default value. |
| getCookieDecoded | Get cookie's decoded value by its name or return the default value. |
| deleteCookie | Delete a cookie by its name. |
| deleteAllCookies | Delete all visible cookies. |
| cookieExists | Check if a cookie exists by its name. |
| cookieHasValue | Check if a cookie exists by the given name and whether or not it has the given value. |
API usage example
Setting a cookie.
import { setCookie, getAllCookies } from 'cookie-api';
setCookie('name', 'value');
console.log(getAllCookies()); // returns { name: "value" }Setting a cookie with options.
import { setCookie, getAllCookies } from 'cookie-api';
setCookie('name', 'value', { maxAge: 1000 * 60 * 60 * 24, secure: true });
console.log(getAllCookies()); // returns { name: "value" }Setting a cookie with encoded value.
import { setCookie, getCookie, getCookieDecoded } from 'cookie-api';
setCookie('name', 'value', { encode: true });
console.log(getCookie('name')); // returns "dmFsdWU%3D"
console.log(getCookieDecoded('name')); // returns "value"Setting a cookie with JSON value.
import { setCookie, getCookie } from 'cookie-api';
setCookie('name', { key: 'value' });
console.log(getCookie('name')); // returns '{ "key": "value" }'Reading a cookie.
import { getCookie } from 'cookie-api';
console.log(getCookie('name')); // returns the value of "name" or empty stringReading a cookie with default value.
import { getCookie } from 'cookie-api';
console.log(getCookie('name', 'defaultValue')); // returns the value of "name" or "defaultValue"Deleting a cookie.
import { deleteCookie } from 'cookie-api';
deleteCookie('name');Deleting all visible cookies.
import { deleteAllCookies } from 'cookie-api';
deleteAllCookies();Builder style
Cookie builder is a builder class that have the exact same functionality as API style but in a fluent way.
Builder class functions
| Function | Definition |
|---|---|
| static get | Creates new cookie builder class based on an existing cookie. |
| static getDecoded | Creates new cookie builder class with an encoded value based on an existing cookie. |
| setName | Set Cookie's name. |
| getName | Get Cookie's name. |
| setValue | Set cookie's value. |
| getValue | Get cookie's value if exists, otherwise the default value. |
| setPath | Set cookie's path. |
| getPath | Get cookie's path. |
| setDomain | Set cookie's domain. |
| getDomain | Get cookie's domain. |
| setExpDate | Set cookie's expiration date. |
| getExpDate | Get cookie's expiration date. |
| setMaxAge | Set cookie's maxAge. |
| getMaxAge | Get cookie's maxAge. |
| setSecure | Set cookie's secure flag. |
| isSecure | Get cookie's secure flag. |
| setEncode | Set cookie's encode option. |
| isEncoded | Get cookie's encode option. |
| save | Save this cookie to the document. |
Builder usage example
Setting a cookie.
import { Cookie } from 'cookie-api';
new Cookie('name', 'value').save();
// or
new Cookie()
.setName('name')
.setValue('value')
.save();
console.log(Cookie.get('name').getValue()); // returns "value"Setting a cookie with options.
import { Cookie } from 'cookie-api';
new Cookie('name', 'value', {
path: '/',
expDate: 'Tue, 13 Aug 2020 10:29:45 GMT'
}).save();
// or
new Cookie()
.setName('name')
.setValue('value')
.setPath('/')
.setExpDate('Tue, 13 Aug 2020 10:29:45 GMT')
.save();
console.log(Cookie.get('name').getValue()); // returns "value"Setting a cookie with encoded value.
import { Cookie } from 'cookie-api';
new Cookie('name', 'value', { encode: true }).save();
// or
new Cookie()
.setName('name')
.setValue('value')
.setEncode(true)
.save();
console.log(Cookie.get('name').getValue()); // returns "value"
console.log(Cookie.getDecoded('name').getValue()); // returns "value"Setting a cookie with JSON value.
import { Cookie } from 'cookie-api';
new Cookie('name', { key: 'value' }).save();
// or
new Cookie()
.setName('name')
.setValue({ key: 'value' })
.save();
console.log(Cookie.get('name').getValue()); // returns '{ "key": "value" }'Reading a cookie.
import { Cookie } from 'cookie-api';
console.log(Cookie.get('name').getValue()); // returns the value of "name" or empty stringReading a cookie with default value.
import { Cookie } from 'cookie-api';
console.log(Cookie.get('name', 'defaultValue').getValue()); // returns the value of "name" or "defaultValue"Note about the builder class
Using the builder class will not save any changes to the document untill you call the save function.
import { Cookie } from 'cookie-api';
// name and value are saved in memory but takes no effect at the document.
const cookie = new Cookie().setName('name').setValue('value');
// you have to call save to actually save it.
cookie.save();Available options
Available cookie options for both API and Builder class.
| Option | Type | Default |
|---|---|---|
| path | string | '' |
| domain | string | '' |
| expDate (aka expires) | string or Date | '' |
| maxAge | number | -1 |
| secure | boolean | false |
| encode | boolean | false |
Using the CDN version
You can import it directly in the browser by adding the script below in your web page.
<script src="https://cdn.jsdelivr.net/npm/cookie-api2.0.2/dist/umd/index.js"></script>Both the API and the builder class are available under the CookieAPI namespace.
<script src="https://cdn.jsdelivr.net/npm/cookie-api2.0.2/dist/umd/index.js"></script>
<script>
CookieAPI.setCookie('name', 'value');
console.log(CookieAPI.getAllCookies()); // returns { name: "value" }
</script>