npm package: @jumpn/utils-promise
Description: Promise utilities
Author: Mauro Titimoli
Latest version: 0.3.1

# @jumpn/utils-promise

> Promise utilities
>
> **NOTE**: All the functions described in [API](#API) are curried

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<!-- END doctoc -->

- [Installation](#installation)
  - [Using npm](#using-npm)
  - [Using yarn](#using-yarn)
- [Types](#types)
- [API](#api)
  - [allByName](#allbyname)
  - [booleanize](#booleanize)
  - [chain](#chain)
  - [createDeferred](#createdeferred)
  - [promisifyFunction](#promisifyfunction)
  - [promisifyObject](#promisifyobject)
  - [track](#track)
  - [promiseTry](#promisetry)
- [License](#license)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## Installation

### Using [npm](https://docs.npmjs.com/cli/npm)

    $ npm install --save @jumpn/utils-promise

### Using [yarn](https://yarnpkg.com)

    $ yarn add @jumpn/utils-promise

## Types

```flowtype
type Deferred<Result> = {
  promise: Promise<Result>,
  resolve: (result: Result) => void,
  reject: (error: any) => void
};

type PromiseInfo<Result> = {
  result: Result,
  status: void | "rejected" | "resolved"
};
```

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### allByName

Returns a promise that will be resolved with an object the results of all the
given promises or it will reject with an Error that will have an additional
property "from" with the name of the promise that caused the rejection.

**Parameters**

-   `promisesByName` **PromisesByName** 

Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;ResultsByName>** 

### booleanize

Returns a new promise which follows the one given returning true in case
there was no error, or false otherwise

**Parameters**

-   `promise` **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;any>** 

Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)>** 

### chain

Chains all promises starting from initialPromise and binding chainers to
next methods

**Parameters**

-   `chainers` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)>** 
-   `initialPromise` **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;any>** 

Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;any>** 

### createDeferred

Creates a Deferred

Returns **Deferred&lt;any>** 

### promisifyFunction

Returns a new function that:

-   if last argument is a callback =>
    it will mimic the function given.
-   if last argument is not a callback =>
    it will return a promise which will be resolved or rejected following the
    execution of the function given.

**Parameters**

-   `fn` **function (): Result** 

### promisifyObject

Returns a new object with the result of having promisified all the methods of
the one given.

**Parameters**

-   `object` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** 

Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** 

### track

Returns an object with status and value properties that are updated as soon
as the promise is resolved or rejected

**Parameters**

-   `promise` **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;Result>** 

Returns **PromiseInfo&lt;$Supertype&lt;Result>>** 

### promiseTry

Returns a promise that will be resolved with the result of execute,
or rejected with the error thrown by it (if any).

**Parameters**

-   `execute` **function (): Result** 

Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;Result>** 

## License

[MIT](LICENSE.txt) :copyright: **Jumpn Limited** / Mauro Titimoli (mauro@jumpn.com)