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.

Dependencies (1)

Dev Dependencies (8)

Package Sidebar

Install

npm i promise-mux

Weekly Downloads

0

Version

1.0.2

License

MIT

Last publish

Collaborators

  • rauchg