1.1.0 • Published 8 years ago

fake-local-storage v1.1.0

Weekly downloads
1
License
ISC
Repository
github
Last release
8 years ago

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:

Installation:

Install with npm:

npm install fake-local-storage

Or download directly from github:

https://raw.githubusercontent.com/jeppester/fake-local-storage/master/dist/fake-local-storage.js

Usage

CommonJs (browserify / webpack / node):

require('fake-local-storage')()

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">
  window.fakeLocalStorage()
</script>

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.