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 --- 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