@yr/local-storage

3.1.0 • Public • Published

NPM Version Build Status

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 version has previously been set, any version differences will be flagged and accessible via the shouldUpgrade method
  • 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'); //=> undefined

remove(key): remove item at key

localStorage.remove('foo/bar');
localStorage.get('foo/bar'); //=> undefined

flush(): 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

Readme

Keywords

none

Package Sidebar

Install

npm i @yr/local-storage

Weekly Downloads

0

Version

3.1.0

License

MIT

Unpacked Size

20.6 kB

Total Files

6

Last publish

Collaborators

  • yr
  • saegrov