promise-mux

    1.0.2 • Public • Published

    mux CircleCI

    A simple and convenient function that resolves promises in data structures like arrays, objects, Maps, and Sets

    What is mux?

    Mux is a function that multiplexes promises in nested data structures and resolves them like this:

    await mux({
      a: asyncFunction1(),
      b: asyncFunction2(),
    });
     
    // Result:
    {
      a: result1,
      b: result2,
    }

    Installing mux

    yarn add @exponent/mux

    And import it like this:

    import mux from '@exponent/mux';

    More examples

    You can also pass in deeply nested data structures like this:

    await mux({
      a: {
        b: asyncFunction1(),
      },
    });
     
    // Result:
    {
      a: {
        b: result1,
      },
    }

    Mux supports several standard JavaScript data structures:

    await mux(new Set([
      asyncFunction1(),
      asyncFunction2(),
    ]));
     
    // Result:
    new Set([
      result1,
      result2,
    ])

    And if your promises themselves result in data structures, mux will recurse into them and resolve the nested promises.

    await mux([
      Promise.resolve({
        a: asyncFunction1(),
      }),
    ]);
     
    // Result:
    [
      {
        a: result1,
      },
    ]

    Check out the test suite for even more examples.

    Install

    npm i promise-mux

    DownloadsWeekly Downloads

    1

    Version

    1.0.2

    License

    MIT

    Last publish

    Collaborators

    • avatar