# 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 perfo

Latest version **1.0.1** (published 2022-10-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install n-parallel
pnpm add n-parallel
yarn add n-parallel
bun add n-parallel
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2022-10-15 |
| First published | 2022-10-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=12 |
| Dependencies | 0 |
| Unpacked size | 8.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | TimeForANinja |
| Maintainers | timeforaninja |

## Links

- npm: https://www.npmjs.com/package/n-parallel
- Repository: https://github.com/timeforaninja/node-n-parallel
- Homepage: https://github.com/timeforaninja/node-n-parallel#readme
- Issues: https://github.com/timeforaninja/node-n-parallel/issues
- npm.io page: https://npm.io/package/n-parallel

## Recent versions

- 1.0.1 (latest) — 2022-10-15
- 1.0.0 — 2022-10-15

## 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 <array>.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 <array>.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
```

---
_Source: https://npm.io/package/n-parallel · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
