A super simple key value store backed by IndexedDB


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
00Jan 19, 2017Jan 19, 2017Minified + gzip package size for @jacobmarshall/kv in KB



This is a fork of idk-kv.

A super simple key value store backed by IndexedDB.

Since it is backed by IndexedDB, you can store anything structured-clonable (numbers, arrays, objects, dates, blobs etc - but beware of browser support).

It's best used with a module loader (webpack, browserify, etc...) so that the global scope isn't poluted with kv.


kv(string name) kv

Creates a custom kv store with a given name.

const store = kv('sw-storage');
await store.set('hello', 'world');
console.log(await kv.get('hello'));
// -> undefined

kv.set(string key, * value) Promise

await kv.set('hello', 'world');
await kv.set('foo', 'bar');
try {
  await kv.set('hello', 'world')
  console.log('It worked!');
} catch(err) {
  console.log('It failed!', err);

kv.get(string key) Promise<*>

console.log(await kv.get('hello'));
// -> "world"

kv.keys() Promise<string>

console.log(await kv.keys());
// -> ["hello", "foo"]

kv.remove(string key) Promise

await kv.remove('hello');

kv.clear() Promise

await kv.clear();

That's it!

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.