Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wojtekmaj/async-array-utils
A collection of array-related async utilities.
https://github.com/wojtekmaj/async-array-utils
array array-methods async promise utils
Last synced: 3 months ago
JSON representation
A collection of array-related async utilities.
- Host: GitHub
- URL: https://github.com/wojtekmaj/async-array-utils
- Owner: wojtekmaj
- License: mit
- Created: 2020-05-03T19:43:52.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-27T07:17:07.000Z (4 months ago)
- Last Synced: 2024-10-14T11:19:03.187Z (3 months ago)
- Topics: array, array-methods, async, promise, utils
- Language: TypeScript
- Homepage:
- Size: 3.73 MB
- Stars: 12
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[![npm](https://img.shields.io/npm/v/@wojtekmaj/async-array-utils.svg)](https://www.npmjs.com/package/@wojtekmaj/async-array-utils) ![downloads](https://img.shields.io/npm/dt/@wojtekmaj/async-array-utils.svg) [![CI](https://github.com/wojtekmaj/async-array-utils/actions/workflows/ci.yml/badge.svg)](https://github.com/wojtekmaj/async-array-utils/actions)
# Async-Array-Utils
A collection of array-related async utilities.
## tl;dr
- Install by executing `npm install @wojtekmaj/async-array-utils` or `yarn add @wojtekmaj/async-array-utils`.
- Import by adding `import * as asyncArrayUtils from '@wojtekmaj/async-array-utils'`.
- Do stuff with it!
```ts
const asyncMappedArr = await asyncMap([1, 2, 3], async (x) => x * 2);
```## User guide
### Table of contents
- [`asyncEvery()`](#asyncEvery)
- [`asyncEveryStrict()`](#asyncEveryStrict)
- [`asyncFilter()`](#asyncFilter)
- [`asyncFilterStrict()`](#asyncFilterStrict)
- [`asyncFind()`](#asyncFind)
- [`asyncFindIndex()`](#asyncFindIndex)
- [`asyncForEach()`](#asyncForEach)
- [`asyncForEachStrict()`](#asyncForEachStrict)
- [`asyncMap()`](#asyncMap)
- [`asyncMapStrict()`](#asyncMapStrict)
- [`asyncReduce()`](#asyncReduce)
- [`asyncSome()`](#asyncSome)
- [`asyncSomeStrict()`](#asyncSomeStrict)### `asyncEvery()`
Tests whether all elements in the array pass the test implemented by the provided asynchronous function. It returns a Boolean value.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider `asyncEveryStrict()` instead.
#### Sample usage
```ts
import { asyncEvery } from '@wojtekmaj/async-array-utils';const largerThanZero = await asyncEvery([1, 2, 3], async (el) => el > 0); // true
```### `asyncEveryStrict()`
Like `asyncEvery()`, but runs iterations non-concurrently.
#### Sample usage
```ts
import { asyncEveryStrict } from '@wojtekmaj/async-array-utils';const indexes = [];
const largerThanZero = await asyncEveryStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el > 0;
}); // true
console.log(indexes); // [0, 1, 2]
```### `asyncFilter()`
Creates a new array with all elements that pass the test implemented by the provided asynchronous function.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider `asyncFilterStrict()` instead.
#### Sample usage
```ts
import { asyncFilter } from '@wojtekmaj/async-array-utils';const asyncFilteredArr = await asyncFilter([1, 2, 3], async (el) => el > 1); // [2, 3]
```### `asyncFilterStrict()`
Like `asyncFilter()`, but runs iterations non-concurrently.
#### Sample usage
```ts
import { asyncFilterStrict } from '@wojtekmaj/async-array-utils';const indexes = [];
const asyncFilteredArr = await asyncFilterStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el > 1;
}); // [2, 3]
console.log(indexes); // [0, 1, 2]
```### `asyncFind()`
Returns the first element in the provided array that satisfies the provided testing function. If no values satisfy the testing function, `undefined` is returned.
#### Sample usage
```ts
import { asyncFind } from '@wojtekmaj/async-array-utils';const asyncFoundEl = await asyncFind([1, 2, 3], async (el) => el > 1); // 2
```### `asyncFindIndex()`
Returns the index of the first element in an array that satisfies the provided testing function. If no elements satisfy the testing function, `-1` is returned.
#### Sample usage
```ts
import { asyncFindIndex } from '@wojtekmaj/async-array-utils';const asyncFoundIndex = await asyncFindIndex([1, 2, 3], async (el) => el > 1); // 1
```### `asyncForEach()`
Executes a provided asynchronous function once for each array element.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider `asyncForEachStrict()` instead.
#### Sample usage
```ts
import { asyncForEach } from '@wojtekmaj/async-array-utils';await asyncForEach([1, 2, 3], async (el) => {
console.log(el * 2);
}); // undefined; 3 console.logs
```### `asyncForEachStrict()`
Like `asyncForEach()`, but runs iterations non-concurrently.
#### Sample usage
```ts
import { asyncForEachStrict } from '@wojtekmaj/async-array-utils';const indexes = [];
await asyncForEachStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
console.log(el * 2);
}); // undefined; 3 console.logs
console.log(indexes); // [0, 1, 2]
```### `asyncMap()`
Creates a new array populated with the results of calling a provided asynchronous function on every element in the calling array.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider `asyncMapStrict()` instead.
#### Sample usage
```ts
import { asyncMap } from '@wojtekmaj/async-array-utils';const asyncMappedArr = await asyncMap([1, 2, 3], async (el) => el * 2); // [2, 4, 6]
```### `asyncMapStrict()`
Like `asyncMap()`, but runs iterations non-concurrently.
#### Sample usage
```ts
import { asyncMapStrict } from '@wojtekmaj/async-array-utils';const indexes = [];
const asyncMappedArr = await asyncMapStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el * 2;
}); // [2, 4, 6]
console.log(indexes); // [0, 1, 2]
```### `asyncReduce()`
Executes a reducer asynchronous function (that you provide) on each element of the array, resulting in a single output value.
#### Sample usage
```ts
import { asyncReduce } from '@wojtekmaj/async-array-utils';const result = await asyncReduce(
[1, 2, 3],
async (tmp, cur, idx) => {
return tmp + cur;
},
0,
); // 6
```### `asyncSome()`
Tests whether at least one element in the array pass the test implemented by the provided asynchronous function. It returns a Boolean value.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects or execution order, consider `asyncMapStrict()` instead.
#### Sample usage
```ts
import { asyncSome } from '@wojtekmaj/async-array-utils';const largerThanZero = await asyncSome([1, 2, 3], async (el) => el > 0); // true
```### `asyncSomeStrict()`
Like `asyncSome()`, but runs iterations non-concurrently.
#### Sample usage
```ts
import { asyncSomeStrict } from '@wojtekmaj/async-array-utils';const indexes = [];
const largerThanZero = await asyncSomeStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el > 0;
}); // true
console.log(indexes); // [0]
```## License
The MIT License.
## Author