107 lines
2.7 KiB
Markdown
107 lines
2.7 KiB
Markdown
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
|