# batch

> Simple async batch with concurrency control and progress reporting.

Latest version **0.6.1** (published 2017-05-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install batch
pnpm add batch
yarn add batch
bun add batch
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.6.1 |
| Published | 2017-05-16 |
| First published | 2012-01-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 316 |
| Author | TJ Holowaychuk |
| Maintainers | dougwilson, tjholowaychuk |

## Links

- npm: https://www.npmjs.com/package/batch
- Repository: https://github.com/visionmedia/batch
- Homepage: https://github.com/visionmedia/batch#readme
- Issues: https://github.com/visionmedia/batch/issues
- npm.io page: https://npm.io/package/batch

## Recent versions

- 0.6.1 (latest) — 2017-05-16
- 0.6.0 — 2017-03-26
- 0.5.3 — 2015-10-01
- 0.5.2 — 2014-12-22
- 0.5.1 — 2014-06-19
- 0.5.0 — 2013-07-29
- 0.4.0 — 2013-06-06
- 0.3.2 — 2013-03-15
- 0.3.1 — 2013-03-13
- 0.3.0 — 2013-03-13
- 0.2.1 — 2012-11-08
- 0.2.0 — 2012-10-04
- 0.1.1 — 2012-07-03
- 0.1.0 — 2012-07-03
- 0.0.3 — 2012-06-02
- … 2 more at https://npm.io/package/batch/versions

## README

# batch

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Build Status][ci-image]][ci-url]
[![Test Coverage][coveralls-image]][coveralls-url]

  Simple async batch with concurrency control and progress reporting.

## Installation

This is a [Node.js](https://nodejs.org/en/) module available through the
[npm registry](https://www.npmjs.com/). Installation is done using the
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):

```bash
$ npm install batch
```

## Usage

```js
var Batch = require('batch')
```

### `new Batch([options], [...fns])`

Create a new Batch, optionally passing an `options` object and/or a list of
functions (`fns`) to queue.

The `options` object may contain the following keys:

- `concurrency`: set the default `concurrency` for the Batch, which can be changed
  using `batch.concurrency(n)`.
- `throws`: set the default `throws` for the Batch, which can be changed using
  `batch.throws(throws)`.

#### `batch.concurrency(n)`

Set concurrency to `n`.

#### `batch.end([cb])`

Execute all queued functions in parallel, executing `cb(err, results)`.

#### `batch.push(fn)`

Queue a function.

#### `batch.throws(throws)`

Set whether Batch will or will not throw up.

#### `progress` event

Contains the "job" index, response value, duration information, and completion data.

```
{ index: 1,
  value: 'bar',
  pending: 2,
  total: 3,
  complete: 2,
  percent: 66,
  start: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),
  end: Thu Oct 04 2012 12:25:53 GMT-0700 (PDT),
  duration: 0 }
```

## Example

```js
var Batch = require('batch')
  , batch = new Batch;

batch.concurrency(4);

ids.forEach(function(id){
  batch.push(function(done){
    User.get(id, done);
  });
});

batch.on('progress', function(e){

});

batch.end(function(err, users){

});
```

## License

[MIT](LICENSE)

[ci-image]: https://badgen.net/github/checks/visionmedia/batch/master?label=ci
[ci-url]: https://github.com/visionmedia/batch/actions/workflows/ci.yml
[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/batch/master
[coveralls-url]: https://coveralls.io/r/visionmedia/batch?branch=master
[downloads-image]: https://badgen.net/npm/dm/batch
[downloads-url]: https://npmjs.org/package/batch
[npm-image]: https://badgen.net/npm/v/batch
[npm-url]: https://npmjs.org/package/batch
[travis-image]: https://badgen.net/travis/visionmedia/batch/master

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