clientdb.js
TypeScript icon, indicating that this package has built-in type declarations

0.4.4 • Public • Published

ClientDB.js

A Reactive and Minimalistic Interface for IndexedDB with Promises (TypeScript supported)

Table of contents:

More on Wiki page:

1. Introduction

IndexedDB is an in-browser database with slightly more advantages than other in-browser databases. For example more storage space, support more complex data structure. Although it APIs are complex to use.

ClientDB.js is a wrapper for IndexedDB with simple APIs, all requests return a promise.

Features:

  • ✅ Basic CRUD (create, read, update, delete) data records backed by sophisticated IndexedDB
  • ✅ Filter data using keys/indices
  • ✅ Event subscribers (subscribe event when insert, remove, and update)
  • TODO: paging, limit, relationship

2. Quickstart

var stores = [{
    name: "Users",
    keys: {
        firstName: false,
        lastName: false,
        username: true
    }
}]

var myDB = new ClientDB({ stores });

// Insert
myDB.collect("Users").insert({
    _id: 'your_own_id', // auto 
    firstName: 'Peter',
    lastName: 'Griffin',
    username: 'peter_grif' // is unique
})
.then(({ items, changes}) => {
    
    // items => Array(1) => [{ added record }]
    // changes => { inserted: 1, removed: 0, updated: 0, unchage: 0 }
})
.catch(error => {

    // error => { message }
})

3. Installation

ClientDB.js is available as npm module (supported TypeScript) and also works with plain Javascript. Follow one of the instructions below to install ClientDB.js to your project

Install as NPM Module

$ npm install --save clientdb.js

Then import ClientDB into your project

import ClientDB from 'clientdb.js';

Install as In-browser Javascript Library

// replace @x.x.x with current version
// Available through window.ClientDB or just ClientDB
<script src="https://unpkg.com/clientdb.js@0.1.4/dist/ClientDB.js"></script>

You can find API References, Build and Tests section on ClientDB.js Wiki Page. And feel free to create an issue related to this project or need any help.

Package Sidebar

Install

npm i clientdb.js

Weekly Downloads

1

Version

0.4.4

License

Apache 2.0

Unpacked Size

112 kB

Total Files

41

Last publish

Collaborators

  • hieunc