1.0.0 • Published 3 years ago

node-storage-polyfill v1.0.0

Weekly downloads
7
License
MIT
Repository
github
Last release
3 years ago

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.