# DOMStorage See https://git.coolaj86.com/coolaj86/dom-storage.js for a slightly better version of the same thing. # localStorage An inefficient, but as W3C-compliant as possible using only pure JavaScript, `localStorage` implementation. ## Purpose This is meant for the purpose of being able to run unit-tests and such for browser-y modules in node. ## Usage var localStorage = require('localStorage') , myValue = { foo: 'bar', baz: 'quux' } ; localStorage.setItem('myKey', JSON.stringify(myValue)); myValue = localStorage.getItem('myKey'); ## API * getItem(key) * setItem(key, value) * removeItem(key) * clear() * key(n) * length ## Tests null === localStorage.getItem('key'); 0 === localStorage.length; null === localStorage.getItem('doesn't exist'); undefined === localStorage['doesn't exist']; localStorage.setItem('myItem'); "undefined" === localStorage.getItem('myItem'); 1 === localStorage.length; localStorage.setItem('myItem', 0); "0" === localStorage.getItem('myItem'); localStorage.removeItem('myItem', 0); 0 === localStorage.length; localStorage.clear(); 0 === localStorage.length; TODO / Bugs --- * Does not persist. * could use `fs.readFileSync` at load and an occasional `fs.writeFile` to write-out localStorage.json * Doesn't not emit `Storage` events