Neapolitan Pasta Maker

    memoize-promise-js

    1.0.5 • Public • Published

    Memoize

    NPM version GitHub issues Travis

    Memoize is a simple cache library that remembers the function execution results and can respond immediately.

    Installation

    The easiest way to install memoize is with npm.

    npm i memoize-promise-js

    Alternately, download the source.

    git clone https://github.com/stegano/memoize.git

    Examples

    var Memoize = require("memoize");
    var chace = new Memoize({
        // Global settings.
        expiredTime: 3000,
        graceful: false
    });
     
    var testFunction = () => {
        /** Return type is must be `Promise` */
        return new Promise(resolve => {
            setTimeout(() => {
                resolve("Proecced data.");
            }, 10);
        });
    };
     
    // Run the function on the first run and cache the results in internal storage.
    cache
        .execute("identity", testFunction)
        .then((data) => {
            console.log(data);
        });
     
    // The second execution is immediately available as cached data by the first execution.
    cache
        .execute("identity", testFunction)
        .then((data) => {
            console.log(data);
        });
     
    // The third execution expires the data cached by `expiredTime` and processes it again by executing the function again.
    setTimeout(() => {
        cache
            .execute("identity", testFunction)
            .then((data) => {
                console.log(data);
            });
    }, 3500);
     

    API

    Memoize.execute(key, yourFunction[, expiredTime][, graceful]) : Promise

    • key: Key to distinguish between tasks. Returns the cached data if the key values are equal and within the validity range.
    • yourFunction: The function to execute. The return value must always be of type Promise.
    • expiredTime: Time to cache data. Cached data is valid for the expiredTime time and the unit of value is ms.
    • graceful: If you use the graceful option, will use the cached data until new data has been processed even if the data has expired.

    Docs

    Create an API document using JSDoc.

    npm install
    npm run doc

    Tests

    To run the test suite, first install the dependencies, then run npm test

    npm ininstall
    npm test

    Install

    npm i memoize-promise-js

    DownloadsWeekly Downloads

    2

    Version

    1.0.5

    License

    MIT

    Last publish

    Collaborators

    • stegano