You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

idb-keyval

Package Overview
Dependencies
0
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

idb-keyval

A super-simple-small keyval store built on top of IndexedDB


Version published
Weekly downloads
848K
decreased by-1.43%
Maintainers
1
Created
Weekly downloads
 

Package description

What is idb-keyval?

The idb-keyval npm package is a simple key-value store backed by IndexedDB. It provides a straightforward API for storing, retrieving, and managing data in the browser's IndexedDB, making it easier to work with compared to the native IndexedDB API.

What are idb-keyval's main functionalities?

Set a value

This feature allows you to store a value in the IndexedDB with a specified key. The code sample demonstrates how to set a value 'value' with the key 'key'.

import { set } from 'idb-keyval';

set('key', 'value').then(() => console.log('Value set!'));

Get a value

This feature allows you to retrieve a value from the IndexedDB using a specified key. The code sample demonstrates how to get the value associated with the key 'key'.

import { get } from 'idb-keyval';

get('key').then(val => console.log('Value:', val));

Delete a value

This feature allows you to delete a value from the IndexedDB using a specified key. The code sample demonstrates how to delete the value associated with the key 'key'.

import { del } from 'idb-keyval';

del('key').then(() => console.log('Value deleted!'));

Clear all values

This feature allows you to clear all values from the IndexedDB. The code sample demonstrates how to clear all stored values.

import { clear } from 'idb-keyval';

clear().then(() => console.log('All values cleared!'));

Get all keys

This feature allows you to retrieve all keys from the IndexedDB. The code sample demonstrates how to get all keys stored in the database.

import { keys } from 'idb-keyval';

keys().then(keys => console.log('Keys:', keys));

Other packages similar to idb-keyval

Readme

Source

IDB-Keyval

This is a super-simple-small promise-based keyval store implemented with IndexedDB, largely based on async-storage by Mozilla.

localForage offers similar functionality, but supports older browsers with broken/absent IDB implementations. Because of that, it's 6k, whereas idb-keyval is less than 500 bytes. Pick whichever works best for you!

This is only a keyval store. If you need to do more complex things like iteration & indexing, check out IDB on NPM (a little heavier at 1.7k). The first example in its README is how to recreate this library.

Usage

set:

idbKeyval.set('hello', 'world');
idbKeyval.set('foo', 'bar');

Since this is IDB-backed, you can store anything structured-clonable (numbers, arrays, objects, dates, blobs etc).

All methods return promises:

idbKeyval.set('hello', 'world')
  .then(() => console.log('It worked!'))
  .catch(err => console.log('It failed!', err));

get:

// logs: "world"
idbKeyval.get('hello').then(val => console.log(val));

If there is no 'hello' key, then val will be undefined.

keys:

// logs: ["hello", "foo"]
idbKeyval.keys().then(keys => console.log(keys));

delete:

idbKeyval.delete('hello');

clear:

idbKeyval.clear();

That's it!

Installing

Via npm

npm install idb-keyval

Now you can require/import idb-keyval:

const idbKeyval = require('idb-keyval');

Via

idb-keyval.js is a valid JS module.

dist/idb-keyval.iffe.js can be used in browsers that don't support modules. idbKeyval is created as a global.

Keywords

FAQs

Package last updated on 16 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc