Nuclear Pumpkin Mocha

    promizr
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.0 • Public • Published

    promizr

    NPM version Unit Tests Coverage Status License semantic-release

    Promizr is a modern Promise utility library which provides simple and powerful functions to manage complex async JavaScript.

    Promizr provides more than 60 functions including the usual collections operations (map, reduce, filter, each…) as well as some common patterns for asynchronous control flow (parallel, series, waterfall…). It also include Queues to manage the maximum number of tasks to run concurrently.

    Installation

    Using NPM:

    $ npm install promizr

    Usage

    You could use promizr in different context.

    Global

    <script type="text/javascript" src="node_modules/promizr/dist/promizr.min.js"></script>

    ES Modules

    import { each } from "promizr";
    await each([...], async (item) => { ... });

    CommonJS

    const promizr = require("promizr");
    await promizr.each([...], async (item) => { ... });

    AMD

    // require.config.js
    requirejs.config({
        paths: {
            promizr: 'node_modules/promizr/dist/promizr.min'
        }
    });
     
    // module.js
    define(["promizr"], function(promizr) {
        promizr.each([...], async (item) => { ... }).then(...);
    });

    Quick Examples

    // contents will be an array containing the content of each file
    const contents = await promizr.map(['file1.json','file2.json','file3.json'], async (src) => {
        const res = await fetch(`https://host/${src}`);
        return res.json();
    });
     
    // entities will be an array containing an array of ids of public entities
    const entities = await promizr.filter(['entity1','entity2','entity3'], async (entityId) => {
        const res = await fetch(`https://api/entities/${entityId}`);
        const entity = await res.json();
        return entity.isPublic;
    });
     
    // operations will run in parallel
    const [result1, result2, result3] = await promizr.parallel([
        async () => operation1Async(),
        async () => operation2Async(),
        async () => operation3Async(),
    ];

    Documentation

    You can find the package documentation here.

    License

    This project is under MIT License. See the LICENSE file for the full license text.

    Install

    npm i promizr

    DownloadsWeekly Downloads

    207

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    190 kB

    Total Files

    9

    Last publish

    Collaborators

    • mluce