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

@sdewa/browser-base

v0.0.9

Published

A tool to help developer store data ofline on browser

Downloads

575

Readme

Browser base

BrowserBase is a TypeScript-based tool designed to work with offline data in the browser. It provides an easy-to-use interface for storing and managing data in the browser's IndexedDB database, making it simple to handle offline storage efficiently.

Browser base build on top LocalForage.

and browser base inspire by localbase.

Badges

MIT License

Getting Started

// run for instalation
npm i @sdewa/browser-base

create database and the collection

// create database instance
let browserBase new BrowserBase("first-db");

// create an interface of data
interface user {
  name: string;
  age: number;
}
// create the collection
browserBase.collection<user>("user-collection");

//the broser base will store data on 'user collection',
//if you don't pass a key on the key param its will generate uuid
browserBase.collection<user>("user-collection").add({
    name: "some name",
    age:10
}, "some key")

// {name: "somename", age:10, _id: "some key"}

//recomended to not pass anything on the key param
//so the data guaranted to be unique
browserBase.collection<user>("user-collection").add({
    name: "some name",
    age:10
})

// {name: "somename", age:10, _id: "<uuid>"}

query the data

//use get will query all data on the collection
browserBase.collection<user>("user-collection").get()
//[
//  {name: "somename", age:10, _id: "<uuid>"}
//  {name: "somename", age:10, _id: "<uuid>"}
//  {name: "somename", age:10, _id: "<uuid>"}
//]

//it's can alos use by specify the key will query
browserBase.collection<user>("user-collection".).byId('<uuid>').get()
//{name: "somename", age:10, _id: "<uuid>"}

//browserbase also have limit and skip interface
browserBase.collection<user>("user-collection".).limit(5).skip(5).get();
//[
//  {name: "somename", age:10, _id: "<uuid>"}
//  {name: "somename", age:10, _id: "<uuid>"}
//  {name: "somename", age:10, _id: "<uuid>"}
//]

//browser base alos have interface ot order the data
browserBase.collection<user>("user-collection".)
            .orderBy("age", "desc").get();
//[
//  {name: "somename", age:3, _id: "<uuid>"}
//  {name: "somename", age:2, _id: "<uuid>"}
//  {name: "somename", age:1, _id: "<uuid>"}
//]

update the data

//use set to update the data
browserBase.collection<user>("user-collection").byId("<uuid>").set({
  name: "new name",
  age: 11,
});
//  {name: "new name", age:11, _id: "<uuid>"}

delete data

//it will delete data match the id
browserBase.collection<user>("user-collection").byId("<uuid>").delete();

//it will delete the collection
browserBase.collection<user>("user-collection").delete();

//it will delete the database
browserBase.delete();

Authors

License

MIT