node-storage-polyfill
v1.0.0
Published
A Web Storage API polyfill for Node.js environments
Downloads
865
Maintainers
Readme
node-storage-polyfill
A Web Storage API polyfill for both window.localStorage
and window.sessionStorage
for Node.js
environments.
Motivation
There are certain situations where you need to access the Web Storage browser APIs, but they aren't available in Node.js environments, such as:
- Running tests locally in a Node.js environment that make calls to the Web Storage browser APIs
- Using a Server-Side Rendering (SSR) framework that won't compile because the browser APIs aren't available server-side
This module provides fully compatible APIs and exposes both localStorage
and sessionStorage
globally as if you were working in a browser context where the APIs would be fully available.
Installation
npm install node-storage-polyfill
Usage
// CommonJS
require('node-storage-polyfill');
// ES Module
import 'node-storage-polyfill';
This exposes global.localStorage
and global.sessionStorage
to your codebase to interact with.
Example
import 'node-storage-polyfill';
sessionStorage.setItem('KEY_1', 'VALUE_1');
console.log(sessionStorage.getItem('KEY_1'));
// Output: 'VALUE_1'
Limitations
The localStorage
API that is exposed does not differ from sessionStorage
and only holds the
data in-memory. This differs from the browser based localStorage
API which stores data between
sessions.
Recognition
I would like to thank capaj and his work on
localstorage-polyfill which was working for me
until I needed a sessionStorage
polyfill, and a new project to spend some time on. Most of the
logic and tests are based on their module, but rewritten in TypeScript and adds support for
sessionStorage
as well as localStorage
.