https://github.com/bmatcuk/redux-storage-engine-cookies
cookie engine for redux-storage
https://github.com/bmatcuk/redux-storage-engine-cookies
Last synced: 3 months ago
JSON representation
cookie engine for redux-storage
- Host: GitHub
- URL: https://github.com/bmatcuk/redux-storage-engine-cookies
- Owner: bmatcuk
- License: mit
- Created: 2016-07-21T22:16:49.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-07-21T22:55:39.000Z (almost 10 years ago)
- Last Synced: 2026-02-11T02:11:32.569Z (4 months ago)
- Language: Makefile
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [redux-storage-engine-cookies][]
[](https://david-dm.org/bmatcuk/redux-storage-engine-cookies)
[](https://david-dm.org/bmatcuk/redux-storage-engine-cookies#info=devDependencies)
[](https://www.npmjs.com/package/redux-storage-engine-cookies)
[](https://www.npmjs.com/package/redux-storage-engine-cookies)
[](https://www.npmjs.com/package/redux-storage-engine-cookies)
`document.cookie` based engine for [redux-storage][].
## Installation
npm install --save redux-storage-engine-cookies
## Usage
Stores everything inside a cookie.
```js
import createEngine from 'redux-storage-engine-cookies';
const engine = createEngine('my-save-key', options);
```
`options` is an optional hash of options to pass to [js-cookie][]. These
options include:
* `options.expires`: Either a number representing the number of days the cookie
will persist, or a `Date` object. If omitted, the cookie will be a session
cookie.
* `options.path`: path under which the cookie is valid. Default is `/`. Due to
an IE bug, do _not_ include a filename in the path (such as `/path/to/file.ext`).
IE will be unable to read the cookie if you do this. Instead, just use a path
like `/path/to/`.
* `options.domain`: What domain the cookie is valid on. By default, it will be
valid on the domain where the cookie is created. IE allows cookies to be
accessed under all nested subdomains as well (such as `sub1.sub2.example.org`).
* `options.secure`: If true, requires HTTPS. Default is false.
See [js-cookie][] for additional documentation for these options.
**Warning**: Browsers allocate a very limited amount of space to cookies, so
don't expect to be able to store a large amount of data here! IE, for example,
limits _all_ cookies to a _total_ of 4096 bytes. If you have multiple cookies
on your domain, this means that the number of bytes you can store might be
significantly less than 4096 since you must share storage space with the
other cookies.
**Warning**: `document.cookie` does not expose a async API and every save/load
operation will block the JS thread!
**Warning**: Some browsers like IE<=11 do not support Promises! You could
use something like [es6-promise][] to polyfill.
[redux-storage]: https://github.com/michaelcontento/redux-storage
[redux-storage-engine-cookies]: https://github.com/bmatcuk/redux-storage-engine-cookies
[js-cookie]: https://github.com/js-cookie/js-cookie#cookie-attributes
[es6-promise]: https://github.com/stefanpenner/es6-promise