Skip to content

IndexedDB store manager wrapper using promises with ES6 classes

Notifications You must be signed in to change notification settings

holmberd/idb-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IndexedDB Promises ES6 Store Wrapper

ES6 class wrapper for creating and managing IndexedDB stores, built on top of jakearchibald idb lib.

Up and Running

npm install idb-store

Usage

const schemas = [
  {
    create: {
      name: 'item',
      options: {autoIncrement: true}
    },
    index: {
      name: 'myIndex',
      property: 'property',
      options: {unique: false}
    }
  }];

const DB = require('idb-store').DB;
const Store = require('idb-store').Store;

// Creates a new database.
DB.createDatabase('myDB', 1, schemas);

const db = new DB('myDB', 1);
const itemRepository = new Store('item', db);

// Creates a transactions and sets some data in the store.
itemRepository.set({ data: 42 })
  .then(itemRepository.getAll)
  .then(val => {
    console.log(val);
  });
});

// Opens a new connection and logs the database name.
db.open()
  .then(db.name)
  .then(name => {
    console.log('database name:', name);
  })
  .then(db.close)
});

DB

Static properties:

  • DB.hasSupport
  • DB.createDatabase
  • DB.deleteDatabase

db

Properties:

  • db.name
  • db.version
  • db.objectStoreNames

Methods:

  • db.close()
  • db.transaction()

Events:

  • onversionchange
  • onabort
  • onerror
  • onclose

Stores

Methods:

  • db[store].get()
  • db[store].set()
  • db[store].delete()
  • db[store].clear()
  • db[store].getAllKeys()
  • db[store].getAll()
  • db[store].count()

About

IndexedDB store manager wrapper using promises with ES6 classes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published