npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

clientdb.js

v0.4.4

Published

A Client-Side Database with Minimalistic Interface for IndexedDB (TypeScript supported)

Downloads

70

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.