A collection of array-related async utilities.
- Install by executing
npm install @wojtekmaj/async-array-utils
oryarn add @wojtekmaj/async-array-utils
. - Import by adding
import * as asyncArrayUtils from '@wojtekmaj/async-array-utils'
. - Do stuff with it!
const asyncMappedArr = await asyncMap([1, 2, 3], async (x) => x * 2);
asyncEvery()
asyncEveryStrict()
asyncFilter()
asyncFilterStrict()
asyncFind()
asyncFindIndex()
asyncForEach()
asyncForEachStrict()
asyncMap()
asyncMapStrict()
asyncReduce()
asyncSome()
asyncSomeStrict()
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.
import { asyncEvery } from '@wojtekmaj/async-array-utils';
const largerThanZero = await asyncEvery([1, 2, 3], async (el) => el > 0); // true
Like asyncEvery()
, but runs iterations non-concurrently.
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]
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.
import { asyncFilter } from '@wojtekmaj/async-array-utils';
const asyncFilteredArr = await asyncFilter([1, 2, 3], async (el) => el > 1); // [2, 3]
Like asyncFilter()
, but runs iterations non-concurrently.
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]
Returns the first element in the provided array that satisfies the provided testing function. If no values satisfy the testing function, undefined
is returned.
import { asyncFind } from '@wojtekmaj/async-array-utils';
const asyncFoundEl = await asyncFind([1, 2, 3], async (el) => el > 1); // 2
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.
import { asyncFindIndex } from '@wojtekmaj/async-array-utils';
const asyncFoundIndex = await asyncFindIndex([1, 2, 3], async (el) => el > 1); // 1
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.
import { asyncForEach } from '@wojtekmaj/async-array-utils';
await asyncForEach([1, 2, 3], async (el) => {
console.log(el * 2);
}); // undefined; 3 console.logs
Like asyncForEach()
, but runs iterations non-concurrently.
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]
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.
import { asyncMap } from '@wojtekmaj/async-array-utils';
const asyncMappedArr = await asyncMap([1, 2, 3], async (el) => el * 2); // [2, 4, 6]
Like asyncMap()
, but runs iterations non-concurrently.
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]
Executes a reducer asynchronous function (that you provide) on each element of the array, resulting in a single output value.
import { asyncReduce } from '@wojtekmaj/async-array-utils';
const result = await asyncReduce(
[1, 2, 3],
async (tmp, cur, idx) => {
return tmp + cur;
},
0,
); // 6
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.
import { asyncSome } from '@wojtekmaj/async-array-utils';
const largerThanZero = await asyncSome([1, 2, 3], async (el) => el > 0); // true
Like asyncSome()
, but runs iterations non-concurrently.
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]
The MIT License.
Wojciech Maj |