Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timeforaninja/node-n-parallel
async array-map with support for n parallel workers
https://github.com/timeforaninja/node-n-parallel
Last synced: 12 days ago
JSON representation
async array-map with support for n parallel workers
- Host: GitHub
- URL: https://github.com/timeforaninja/node-n-parallel
- Owner: TimeForANinja
- License: mit
- Created: 2022-10-15T12:11:46.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-07-20T00:03:31.000Z (over 1 year ago)
- Last Synced: 2024-12-07T20:59:54.675Z (about 1 month ago)
- Language: TypeScript
- Size: 292 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-n-parallel
A small library to allow you easy access to an async array-map that uses a user-defined amount of workers instead of doing all jobs in sequence or parallel. This is e.g. usefull when fetching huge amounts of web requests and optimising for both time performance and not ddos-ing your target.
![Depfu](https://img.shields.io/depfu/timeforaninja/node-n-parallel)
[![codecov](https://codecov.io/gh/timeforaninja/n-parallel/branch/master/graph/badge.svg)](https://codecov.io/gh/timeforaninja/n-parallel)# Usage
Request a bunch of Websites
```js
const nparallel = require('n-parallel');const pages = await nparallel(
// Input data
['website1.com', 'website2.com', 'website3.con'],
// The Map-Function is identical to the default .map
async(url, idx, array) => await fetch(url),
// Number of Workers
2,
);
```By-default we also expand the Array prototype
```js
require('n-parallel');const pages = ['website1.com', 'website2.com', 'website3.con'].nmap(
// The Map-Function is identical to the default .map
async(url, idx, array) => await fetch(url),
// Number of Workers
2,
)
```# API
### nparallel(data, mapFunc, numWorkers)
* `data` - An array of input data to map.
* `mapFunc` - An async function used to map a single `data`-Element to a single output data object.
* `numWorkers`- An integer describing how many workers should work on mapping.nparallel returns a Promise that resolves to the objects created by the `mapFunc`.
# Install
```bash
npm install miniget
```# Tests
Tests are written with [mocha](https://mochajs.org)```bash
npm test
```