# pm2-multimeter

> render multiple progress bars at once on the terminal with eventlimit maxed

Latest version **0.1.2** (published 2013-07-16) · MIT/X11 license · 0 weekly downloads

## Install

```sh
npm install pm2-multimeter
pnpm add pm2-multimeter
yarn add pm2-multimeter
bun add pm2-multimeter
```

## 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.1.2 |
| Published | 2013-07-16 |
| First published | 2013-07-16 |
| Weekly downloads | 0 |
| License | MIT/X11 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 9 |
| Author | James Halliday |
| Maintainers | tknew |
| Keywords | progress, bar, status, meter, terminal, console, ansi |

## Links

- npm: https://www.npmjs.com/package/pm2-multimeter
- Repository: https://github.com/Unitech/node-multimeter
- npm.io page: https://npm.io/package/pm2-multimeter

## Dependencies (1)

- [charm](https://npm.io/package/charm.md) ~0.1.1

## Alternatives

- [@sentry/react-native](https://npm.io/package/@sentry/react-native.md) — 2.6M weekly downloads
- [@ardatan/aggregate-error](https://npm.io/package/@ardatan/aggregate-error.md) — 708.1K weekly downloads
- [custom-error-generator](https://npm.io/package/custom-error-generator.md) — 2.0K weekly downloads
- [@technik-sde/prosemirror-recreate-transform](https://npm.io/package/@technik-sde/prosemirror-recreate-transform.md) — 1.5K weekly downloads
- [@suchipi/error-utils](https://npm.io/package/@suchipi/error-utils.md) — 78 weekly downloads

## Recent versions

- 0.1.2 (latest) — 2013-07-16

## README

multimeter
==========

Control multiple ANSI progress bars on the terminal.

![multibar example output](http://substack.net/images/screenshots/multibar.png)

![multimeter](http://substack.net/images/multimeter.png)

example
=======

````javascript
var multimeter = require('multimeter');
var multi = multimeter(process);

multi.drop(function (bar) {
    var iv = setInterval(function () {
        var p = bar.percent();
        bar.percent(p + 1);
        
        if (p >= 100) clearInterval(iv);
    }, 25);
});
````

methods
=======

var multimeter = require('multimeter');

var multi = multimeter(stream, ...)
-----------------------------------

Create a new multimeter handle on the supplied stream/process objects, which
will be passed directly to [charm](https://github.com/substack/node-charm).

If you pass in a charm object that will be used instead of creating a new one.

var bar = multi(x, y, params)
-----------------------------

Create a new progress bar at `(x,y)` with `params` which default to:

* width : 10
* before : '['
* after : '] '
* solid : { background : 'blue', foreground : 'white', text : '|' }
* empty : { background : null, foreground : null, text : ' ' }

If `y` is negative or `'-0'` it will be treated as a relative coordinate.

var bar = multi.rel(x, y, params)
---------------------------------

Create a new progress bar at an absolute `x` and relative `y` coordinate with
respect to the present `multi.offset`.

multi.drop(params, cb)
----------------------

Create a new progress bar at the present cursor location. The `bar` object will
be passed to `cb(bar)` once the cursor location has been determined. 

multi.on(...), multi.removeListener(...), multi.destroy(...), multi.write(...)
------------------------------------------------------------------------------

Call event emitter functions on the underlying `charm` object.

multi.offset
------------

This getter/setter controls the positioning for relative progress bars.

Increment this value whenever you write a newline to the stream to prevent the
pending progress bars from drifting down from their original positions.

bar.percent(p, msg=p + ' %')
----------------------------

Update the progress bar to `p` percent, a value between 0 and 100, inclusive.

The text to the right of the progress bar will be set to `msg`.

bar.ratio(n, d, msg=n + ' / ' + d)
----------------------------------

Update the progress bar with a ratio, `n/d`.

The text to the right of the progress bar will be set to `msg`.

attributes
==========

multi.charm
-----------

The [charm](https://github.com/substack/node-charm) object used internally to
draw the progress bars.

install
=======

With [npm](http://npmjs.org) do:

    npm install multimeter

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