Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jumpn/utils-promise
Promise Utilities
https://github.com/jumpn/utils-promise
deferred functional-programming promise promise-utilities utilities utils
Last synced: about 1 month ago
JSON representation
Promise Utilities
- Host: GitHub
- URL: https://github.com/jumpn/utils-promise
- Owner: jumpn
- License: mit
- Created: 2017-09-21T01:43:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-30T22:55:37.000Z (about 7 years ago)
- Last Synced: 2024-11-09T10:11:40.939Z (about 2 months ago)
- Topics: deferred, functional-programming, promise, promise-utilities, utilities, utils
- Language: JavaScript
- Size: 97.7 KB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# @jumpn/utils-promise
> Promise utilities
>
> **NOTE**: All the functions described in [API](#API) are curried- [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)## 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 = {
promise: Promise,
resolve: (result: Result) => void,
reject: (error: any) => void
};type PromiseInfo = {
result: Result,
status: void | "rejected" | "resolved"
};
```## API
### 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)<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)<any>**
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[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)<[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)<any>**Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<any>**
### createDeferred
Creates a Deferred
Returns **Deferred<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)<Result>**
Returns **PromiseInfo<$Supertype<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)<Result>**
## License
[MIT](LICENSE.txt) :copyright: **Jumpn Limited** / Mauro Titimoli ([email protected])