parcoursup/node_modules/ruit/README.md

115 lines
2.8 KiB
Markdown
Raw Normal View History

2023-03-05 13:23:23 +01:00
<img src="ruit-logo.svg" width="46%"/>
Functional tasks serialization mini script (0.3kb)
[![Build Status][travis-image]][travis-url]
[![NPM version][npm-version-image]][npm-url]
[![NPM downloads][npm-downloads-image]][npm-url]
[![MIT License][license-image]][license-url]
## Installation
```js
import ruit from 'ruit'
```
[travis-image]: https://img.shields.io/travis/GianlucaGuarini/ruit.svg?style=flat-square
[travis-url]: https://travis-ci.org/GianlucaGuarini/ruit
[license-image]: http://img.shields.io/badge/license-MIT-000000.svg?style=flat-square
[license-url]: LICENSE.txt
[npm-version-image]: http://img.shields.io/npm/v/ruit.svg?style=flat-square
[npm-downloads-image]: http://img.shields.io/npm/dm/ruit.svg?style=flat-square
[npm-url]: https://npmjs.org/package/ruit
## API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### ruit
Serialize a list of sync and async tasks from left to right
**Parameters**
- `tasks` **any** list of tasks to process sequentially
**Examples**
```javascript
const curry = f => a => b => f(a, b)
const add = (a, b) => a + b
const addOne = curry(add)(1)
const squareAsync = (num) => {
return new Promise(r => {
setTimeout(r, 500, num * 2)
})
}
// a -> a + a -> a * 2
// basically from left to right: 1 => 1 + 1 => 2 * 2
ruit(1, addOne, squareAsync).then(result => console.log(result)) // 4
```
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** a promise containing the result of the whole chain
#### cancel
Helper that can be returned by ruit function to cancel the tasks chain
**Examples**
```javascript
ruit(
100,
num => Math.random() * num
num => num > 50 ? ruit.cancel() : num
num => num - 2
).then(result => {
console.log(result) // here we will get only number lower than 50
})
```
Returns **[Symbol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)** internal private constant
#### compose
The same as ruit() but with the arguments inverted from right to left
**Parameters**
- `tasks` **any** list of tasks to process sequentially
**Examples**
```javascript
const curry = f => a => b => f(a, b)
const add = (a, b) => a + b
const addOne = curry(add)(1)
const squareAsync = (num) => {
return new Promise(r => {
setTimeout(r, 500, num * 2)
})
}
// a -> a + a -> a * 2
// basically from right to left: 1 => 1 + 1 => 2 * 2
ruit.compose(squareAsync, addOne, 1).then(result => console.log(result)) // 4
```
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)** a promise containing the result of the whole chain
# Ruit meaning
`ruit` comes from the `ruere` latin verb that means `It falls`, It expresses properly the essence of this script and sounds also similar to `run it`