MCPcopy Index your code
hub / github.com/developit/asyncro

github.com/developit/asyncro @3.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 3.0.0 ↗ · + Follow
15 symbols 29 edges 5 files 0 documented · 0% 2 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

asyncro NPM travis-ci

The same map(), reduce() & filter() you know and love, but with async iterator functions!

Do fetch() networking in loops, resolve Promises, anything async goes. Performance-friendly by default.

Here's what it looks like:

Asyncro Example


What's in the Box

Asyncro Example 2


Installation

npm install --save asyncro

Import and Usage Example

import { map } from 'asyncro';

async function example() {
    return await map(
        ['foo', 'bar', 'baz'],
        async name => fetch('./'+name)
    )
}

API

reduce

Invoke an async reducer function on each item in the given Array, where the reducer transforms an accumulator value based on each item iterated over. Note: because reduce() is order-sensitive, iteration is sequential.

This is an asynchronous version of Array.prototype.reduce()

Parameters

  • array Array The Array to reduce
  • reducer Function Async function, gets passed (accumulator, value, index, array) and returns a new value for accumulator
  • accumulator [any] Optional initial accumulator value

Examples

await reduce(
    ['/foo', '/bar', '/baz'],
    async (accumulator, value) => {
        accumulator[v] = await fetch(value);
        return accumulator;
    },
    {}
);

Returns any final accumulator value

map

Invoke an async transform function on each item in the given Array in parallel, returning the resulting Array of mapped/transformed items.

This is an asynchronous, parallelized version of Array.prototype.map().

Parameters

  • array Array The Array to map over
  • mapper Function Async function, gets passed (value, index, array), returns the new value.

Examples

await map(
    ['foo', 'baz'],
    async v => await fetch(v)
)

Returns Array resulting mapped/transformed values.

filter

Invoke an async filter function on each item in the given Array in parallel, returning an Array of values for which the filter function returned a truthy value.

This is an asynchronous, parallelized version of Array.prototype.filter().

Parameters

  • array Array The Array to filter
  • filterer Function Async function. Gets passed (value, index, array), returns true to keep the value in the resulting filtered Array.

Examples

await filter(
    ['foo', 'baz'],
    async v => (await fetch(v)).ok
)

Returns Array resulting filtered values

find

Invoke an async function on each item in the given Array in parallel, returning the first element predicate returns truthy for.

This is an asynchronous, parallelized version of Array.prototype.find().

Parameters

  • array Array The Array to find
  • predicate Function Async function. Gets passed (value, index, array), returns true to be the find result.

Examples

await find(
    ['foo', 'baz', 'root'],
    async v => (await fetch(v)).name === 'baz'
)

Returns any resulting find value

every

Checks if predicate returns truthy for all elements of collection in parallel.

This is an asynchronous, parallelized version of Array.prototype.every().

Parameters

  • array Array The Array to iterate over.
  • predicate Function Async function. Gets passed (value, index, array), The function invoked per iteration.

Examples

await every(
    [2, 3],
    async v => (await fetch(v)).ok
)

Returns Boolean Returns true if all element passes the predicate check, else false.

some

Checks if predicate returns truthy for any element of collection in parallel.

This is an asynchronous, parallelized version of Array.prototype.some().

Parameters

  • array Array The Array to iterate over.
  • filterer Function Async function. Gets passed (value, index, array), The function invoked per iteration.

Examples

await some(
    ['foo', 'baz'],
    async v => (await fetch(v)).ok
)

Returns Boolean Returns true if any element passes the predicate check, else false.

parallel

Invoke all async functions in an Array or Object in parallel, returning the result.

Parameters

Examples

await parallel([
    async () => await fetch('foo'),
    async () => await fetch('baz')
])

Returns (Array | Object) same structure as list input, but with values now resolved.

series

Invoke all async functions in an Array or Object sequentially, returning the result.

Parameters

Examples

await series([
    async () => await fetch('foo'),
    async () => await fetch('baz')
])

Returns (Array | Object) same structure as list input, but with values now resolved.

License

MIT

Core symbols most depended-on inside this repo

get
called by 6
test/index.js
baseMap
called by 4
src/util.js
showHashTarget
called by 3
docs/assets/site.js
sleep
called by 2
test/index.js
map
called by 2
src/util.js
resolve
called by 1
src/util.js
reduce
called by 1
src/index.js
parallel
called by 1
src/index.js

Shape

Function 15

Languages

TypeScript100%

Modules by API surface

docs/assets/site.js5 symbols
src/util.js4 symbols
src/index.js3 symbols
test/index.js2 symbols
docs/assets/anchor.js1 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add asyncro \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact