An implementation of Web Storage localStorage without persistence

Usage no npm install needed!

<script type="module">
  import fakeLocalStorage from 'https://cdn.skypack.dev/fake-local-storage';



A non-persistent localStorage implementation.

Use this implementation if you're in need of a localStorage shim that doesn't implement persistence.

fake-local-storage can also be used for providing localStorage to node.js, so that you can test JavaScript code - that relies on localStorage - without having to run a full-fledged headless browser. It does however require a node.js version that has ES 2015 Proxy support (Node V6.0 or higher)

How to Use:


Install with npm:

npm install fake-local-storage

Or download directly from github:



CommonJs (browserify / webpack / node):


Basic javascript:

<!-- Import script -->
<script type="text/javascript" src="[YOUR-JS-FILE-LOCATION]/fake-local-storage.js"></script>

<!-- Overwrite native localStorage -->
<script type="text/javascript">

Known limitations

This module is primarily made for solving one specific problem (see Why create a fake localStorage implementation?), thus it is currently only implementing the functionality needed for solving that problem.

All basic functionality is implemented EXCEPT EVENTS

Events might be implemented in a later version - pull requests are welcome!

Why create a fake localStorage implementation?

I was using Backbone.localStorage for a cordova app.

Because localStorage can be unreliable, I decided to save a backup to a file on each write, and to load the data from the file into localStorage on each application start.

I later figured out that cordova's localStorage might be synced to google/iCloud, but I wanted to control what to sync.

The most convenient way I could come up with for solving the above problem, was to create a fake local storage implementation.