Abstracts access to any storage object implementing the webstorage Storage interface, offering optional compression using lz-string and optional encryption using crypto
npm install persistent-storage
- Seamless Serialisation / Deserialization of objects (functions and prototype etc however will not be maintained)
- Optional seamless compression using lz-string
- Optional seamless encryption using node crypto / browserify-crypto
- Optional key scoping
//Without Scoping
var PersistentStore = require('persistent-store')
var store = new PersistentStorage({
useCompression: false,
storageBackend: new StorageShim()
})
store.setItem("myObj", {foo: "bar"})
console.log(store.getItem("myObj")) // Prints {foo: "bar"}
//With scoping
var fred = new PersistentStorage({
useCompression: true,
keyPrefix: 'fred'
storageBackend: new StorageShim()
})
var bob = new PersistentStorage({
useCompression: false,
keyPrefix: 'bob'
storageBackend: new StorageShim()
})
fred.setItem("name", "Fred")
bob.setItem("name", "Bob")
console.log(fred.getItem("name")) // prints Fred
console.log(bob.getItem("name")) // prints Bob
See unit tests here for further examples
npm install
npm test
You can also run them using the browser of your choice by opening the html file found here