Skip to content

Provides an in memory implementation of the webstorage Storage interface to be used as a shim for localStorage or sessionStorage for unit testing

License

Notifications You must be signed in to change notification settings

mnahkies/node-storage-shim

Repository files navigation

node-storage-shim

Build Status npm

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

Further Reading

w3c Storage Interface

MDN Storage Documentation

About

Provides an in memory implementation of the webstorage Storage interface to be used as a shim for localStorage or sessionStorage for unit testing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published