- Removed
defaults
in favor of a builder: now to supply an api instance with particular predefined (cookie) attributes there's Cookies.withAttributes()
, e.g.:
const api = Cookies.withAttributes({
path: '/',
secure: true
})
api.set('key', 'value') // writes cookie with path: '/' and secure: true...
- The attributes that an api instance is configured with are exposed as
attributes
property; it's an immutable object and unlike defaults
cannot be changed to configure the api.
- The mechanism to fall back to the standard, internal converter by returning a falsy value in a custom read converter has been removed. Instead the default converters are now exposed as
Cookies.converter
, which allows for implementing self-contained custom converters providing the same behavior:
const customReadConverter = (value, name) => {
if (name === 'special') {
return unescape(value)
}
return Cookies.converter.read(value)
}
withConverter()
no longer accepts a function as argument to be turned into a read converter. It is now required to always pass an object with the explicit type(s) of converter(s):
const api = Cookies.withConverter({
read: (value, name) => unescape(value)
})
- The converter(s) that an api instance is configured with are exposed as
converter
property; it's an immutable object and cannot be changed to configure the api.
- Started providing library as ES module, in addition to UMD module. The
module
field in package.json
points to an ES module variant of the library.
- Started using
browser
field instead of main
in package.json
(for the UMD variant of the library).
- Dropped support for IE < 10.
- Removed built-in JSON support, i.e.
getJSON()
and automatic stringifying in set()
: use Cookies.set('foo', JSON.stringify({ ... }))
and JSON.parse(Cookies.get('foo'))
instead.
- Removed support for Bower.
- Added minified versions to package - #501
- Improved support for url encoded cookie values (support case insensitive encoding) - #466, #530
- Expose default path via API - #541
- Handle falsy arguments passed to getters - #399
- No longer support Node < 12 when building (LTS versions only)