@reliutg/lsdb
TypeScript icon, indicating that this package has built-in type declarations

4.9.1 • Public • Published

lsdb

CI Issues Forks Stars All Contributors

Typed localStorage database powered by with JSON definition

Features

  • 📦 Tree-shakeable
  • Fast
  • Lightweight
  • ❤️ Strongly typed

Installation

npm i @reliutg/lsdb

With Skypack

no npm install needed!

<script type="module">
  import Lsdb from 'https://cdn.skypack.dev/@reliutg/lsdb';
</script>

We’ll start by setting up a database:

const lsdb = new Lsdb('dbname');

Creating list of collections

// Create multiple collections
lsdb.collection(['categories', 'articles']);
// Create single collection
lsdb.collection('categories');

Inserting

lsdb.insert('categories', { title: 'Drinks' });
lsdb.insert('categories', { title: 'Dinner' });
lsdb.insert('categories', { title: 'Breakfast' });
lsdb.insert('articles', { title: 'Coffee', category: 'Drinks' });
lsdb.insertMany('categories', [{ title: 'Drinks' }, { title: 'Dinner' }, { title: 'Breakfast' }]);

Getting data

Get single collection or all collection entries

lsdb.all();
// {categories: Array(2), articles: Array(0)}

lsdb.all('categories');
// [{title: 'Drinks'}, {title: 'Dinner'}, {title: 'Breakfast'}]

Get a list of documents

lsdb.find('categories', {
  where: {
    category: { $in: ['Drinks'] },
  },
});

lsdb.find('articles', {
  where: {
    category: { $eq: 'Drinks' },
  },
});

lsdb.find('articles', {
  sort: {
    field: 'title',
    order: 'asc'
  },
  limit: 2,
  skip: 1,
});

Find Options

Field Type Description Default Required
where Object Filter by object undefined false
sort Object Sort by field name undefined false
limit number Limit number of results undefined false
skip number Skip number of results 0 false

Available operators for where

Based on MongoDB query selectors

  • $eq - Equal
  • $in - In
  • $nin - Not in
  • $ne - Not equal
  • $gt - Greater than
  • $gte - Greater than or equal
  • $lt - Less than
  • $lte - Less than or equal

Get a single document matching the query

lsdb.findOne('categories', {
  where: {
    _id: { $eq: id },
  },
});

Updating

Update a single document matching the query

lsdb.update('categories', {
  where: {
    _id: { $eq: id },
  },
});

Removing

Remove a single document matching the query

lsdb.delete('categories', {
  where: {
    _id: { $eq: id },
  },
});

Contributors

Thanks goes to these wonderful people (emoji key):


Aneesh Relan

⚠️ 💻

Zymantas Maumevicius

🚇 💻

Nitkalya Wiriyanuparb

⚠️ 💻

Connor Ruggles

🚇 💻

MAKSS

📖

Vasiliy Vanchuk

💻

Pablo

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Readme

Keywords

Package Sidebar

Install

npm i @reliutg/lsdb

Weekly Downloads

3

Version

4.9.1

License

MIT

Unpacked Size

14.1 kB

Total Files

5

Last publish

Collaborators

  • roberthgnz