clientdb.js
v0.4.4
Published
A Client-Side Database with Minimalistic Interface for IndexedDB (TypeScript supported)
Downloads
70
Maintainers
Readme
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/[email protected]/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.