@faizaanceg/pandora
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.1 • Public • Published

    @faizaanceg/pandora

    A tiny wrapper over LocalStorage to improve DX.

    Motivation

    Ever felt that localStorage is good but it could be better? This library bridges that gap and gives you a pleasant experience when working with localStorage.

    Benefits

    • Tiny (< 500B gzipped and minified).
    • Smooth use with objects.
    • Expirable values (configurable with ttl option).

    Installation

    npm install @faizaanceg/pandora --save

    or

    yarn add @faizaanceg/pandora

    Usage

    import pandora from "@faizaanceg/pandora";
    
    // Set an item
    
    /*
      localStorage.setItem("username", "pandora");
    */
    pandora.set("username", "pandora");
    
    // Get an item
    
    /*
      let value = localStorage.getItem("key");
    */
    let value = pandora.get("key");
    
    // Managing default values
    
    /*
      let defaultValue = 1;
      let count = localStorage.getItem("count") || defaultValue;
    */
    let count = pandora.get("count", 1);
    
    // Dealing with objects
    
    /*
      let object = { someKey: "value" };
      localStorage.setItem("object", JSON.stringify(object));
    
      let fromStorage = JSON.parse(localStorage.getItem("object"));
      console.log(fromStorage.someKey); // value
    */
    let object = { someKey: "value" };
    pandora.set("object", object);
    
    let fromStorage = pandora.get("object"); // JSON.parse happens internally
    console.log(fromStorage.someKey); // value;
    
    // Clear items
    
    /*
      localStorage.clear()
    */
    pandora.clear();
    
    // Persist values
    
    /*
      let value  = localStorage.getItem("key");
      localStorage.clear();
      localStorage.setItem("key", value);
    */
    pandora.set("key", value, { shouldPersist: true });
    pandora.clear();
    pandora.get("key") === value; // true

    For more examples, you can check out the index.test.ts file.

    Tests

    npm install
    npm test

    Dependencies

    None

    License

    MIT

    Install

    npm i @faizaanceg/pandora

    DownloadsWeekly Downloads

    12

    Version

    1.1.1

    License

    MIT

    Unpacked Size

    22.8 kB

    Total Files

    12

    Last publish

    Collaborators

    • faizaanceg