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

    4.8.2 • Public • Published

    lsdb

    CI Issues Forks Stars All Contributors

    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!

    Install

    npm i @reliutg/lsdb

    DownloadsWeekly Downloads

    2

    Version

    4.8.2

    License

    MIT

    Unpacked Size

    16 kB

    Total Files

    5

    Last publish

    Collaborators

    • reliutg