@yr/local-storage v3.1.0
An localStorage wrapper. Works in environments without localStorage (Node.js, for example), or in those with restricted access (some browser prevent access during private browsing, for example).
Usage
const localStorage = require('@yr/local-storage');
localStorage.init({
maxKeyLength: 2,
version: { foo: 1, bar: 2 },
writeDelay: 100
});
localStorage.set('foo/bar', { boo: false });
localStorage.get('foo'); //=> { bar: { boo: false } }
localStorage.remove('foo');API
init(options): override defaults. Options include:
- maxKeyLength: Number: the number of key segments to store data under (default
3) - version: Object: an object specifying schema versions for a given set of keys. If
versionhas previously been set, any version differences will be flagged and accessible via theshouldUpgrademethod - writeDelay: Number: the delay in ms to use for batching and flushing writes to disk/memory (default
1000)
set(key, value): store value at key. Calls to set() are batched and flushed to disk/memory (based on options.writeDelay set in init())
localStorage.set('foo/bar', 'bar');
localStorage.set('foo/boo', { boo: true });get(key): retrieve an object of all items matching key
localStorage.get('foo'); //=> { 'bar': 'bar', 'boo': { boo: true } }
localStorage.get(); //=> { foo: { 'bar': 'bar', 'boo': { boo: true } }
localStorage.get('bar'); //=> undefinedremove(key): remove item at key
localStorage.remove('foo/bar');
localStorage.get('foo/bar'); //=> undefinedflush(): write all pending changes to disk/memory
clear(): remove all items (preserves version data)
destroy(): remove all items and reset to defaults
shouldUpgrade(namespace): determine if versioned namespace should be upgraded based on version mismatch (from options.version set in init())
localStorage.init({ version: { foo: 2, bar: 2 }});
localStorage.shouldUpgrade('foo'); //=> true
localStorage.shouldUpgrade('bar'); //=> false