JSPM

local-storage-db

1.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • 0
    • Score
      100M100P100Q14416F
    • License MIT

    A minimal NoSql data storage for web application using browser LocalStorage API

    Package Exports

    • local-storage-db

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (local-storage-db) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Coverage Status Build Status Code Climate

    LocalStorageDB

    LocalStorageDB is an enhancement of the built-in localStorage for browsers, it gives you the ability to save complex data localy for rapid application development.

    It works like Firebase except less complex and this time it's offline. It's useful in instances where you want to cache little or large data within the application on the user's machine.

    why use LocalStorageDB?

    • It's pretty fast and lightweight (2kb)
    • It has the least complex data storage api while also providing rich functionality
    • No form of setups required

    Installation

    To get the latest version of LocalStorageDB, simply run this command

    via npm
    
     npm install local-storage-db
    
    via bower
    
    bower install local-storage-db
    
    

    Alternatively you can download it from github as a zip, extract and move it to your project directory

    you will then need to link it like this

    <script type="text/javascript" src="LocalStorageDB/dist/localStorageDB.min.js">

    Usage

    // For node only
    
    import LocalStorageDB from 'local-storage-db';

    First create an instance to use for your app. The construtor parameter is similar to the key in the setItem method and is required.

    NOTE: you can create multiple instance for your app if you want

    Creating data

    const db = new LocalStorageDB('documents');
    
    // CREATING DATA
    
    db.create('users', [{id: 1, name: 'john-doe'}, {id: 2, name: 'jane-doe'}]);
    // append new user
    db.create('users', {id: 3, name: 'dan-daniels'});
    
    // this would return
    // {"users" : [ {id: 1, name: 'john-doe'}, {id: 2, name: 'jane-doe'}, {id: 3, name: 'dan-daniels'}]}
    
    // similarly you can create new data like this
    
    db.create('pictures', { img: 'pic1.jpg', ownerId: 1 } );
    db.create('pictures', { img: 'pic2.jpg', ownerId: 2 } );
    
    // this would return
    // { pictures: [{ img: 'pic1.jpg', ownerId: 1 }, { img: 'pic2.jpg', ownerId: 2 }] }
    
    

    Reading data

    
    db.get();
    
    /* this would return
    { "users" : [ {id: 1, name: 'john-doe'}, {id: 2, name: 'jane-doe'}, {id: 3,
    name: 'dan-daniels'}],
      "pictures": [{ img: 'pic1.jpg', ownerId: 1 }, { img: 'pic2.jpg', ownerId: 2 }]
    }
    */
    
    db.get('pictures');
    //this would return
    
    /*
    [{ img: 'pic1.jpg', ownerId: 1 }, { img: 'pic2.jpg', ownerId: 2 }]
    */
    
    db.get('users', 2);
    
    // this would return
    // {id: 3, name: 'dan-daniels'}

    Updating data

    db.update( {id: 3, name: 'Dr Dan Daniels'}, 'users' , 2);
    
    // this would override the third user with new information resulting to:
    /*
    {"users" : [ {id: 1, name: 'john-doe'}, {id: 2, name: 'jane-doe'}, {id: 3,
    name: 'Dr Dan Daniels'}]}
    */
    
    db.update( [], 'pictures')
    // this would override the pictures saved already with an empty array
    

    Deleting data

    db.remove('pictures');
    
    // this would remove the picture key from the object
    
    db.remove('users', 0);
    // this would remove the first element in the users array
    /*
    "users" : [{id: 2, name: 'jane-doe'}, {id: 3, name: 'dan-daniels'}]
    */
    
    db.remove();
    // this would remove every item in the object
    

    Contributing

    Please feel free to fork this package and contribute by submitting a pull request to enhance the functionalities.

    License

    The MIT License (MIT). Please see License File for more information.