node-storage-shim
v2.0.1
Published
Provides an in memory implementation of the webstorage Storage interface to be used as a shim for localStorage or sessionStorage for unit testing
Downloads
4,128
Readme
node-storage-shim
node-storage-shim provides a simple shim conforming to the w3c Storage Interface that can be used as a transient replacement for localStorage or sessionStorage when running in environments that do not support these, eg: node.
Note that this does not persist it's data to disk, and is primarily aimed at use in unit tests.
Installation
The package can be installed from npm:
npm install --save node-storage-shim
Example Usage
const StorageShim = require('node-storage-shim')
storage = new StorageShim()
storage.setItem("foo", "My Value")
console.log(storage.getItem("foo")
Polyfill localStorage / sessionStorage
If you wish to polyfill the localStorage and sessionStorage globals that are available in web browsers, you can do something like this:
const StorageShim = require('node-storage-shim')
global.window = global
global.localStorage = new StorageShim()
global.sessionStorage = new StorageShim()
Running Unit Tests
The unit tests use mocha, and are setup to run by the standard npm test command. This also runs a sanity test of the typescript declaration in the test-typescript-declarations directory
npm install
npm test
Limitations
You cannot use any of the method names as keys, this is a trade-off that is required to support for ... in iteration.
storage event portion of the interface is not implemented.
Change Log
2.0.1 (21-03-2020)
- Improve readme
2.0.0 (10-09-2018)
- Updated minimum NodeJS version and started using Proxy to fix limitations with respect to direct property access.
- Added typescript declaration
1.0.1 (08/01/2015)
- Initial release