JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 799
  • Score
    100M100P100Q102385F
  • License MIT

Simple terminal progress indicator made for any loop

Package Exports

  • nqdm

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nqdm) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

nqdm

Simple terminal progress indicator made for any loop

Animation

Installation

npm install nqdm

Usage

With iterable objects

const nqdm = require('nqdm')

// Array, Generator, etc..
const arr = [...Array(1000)]

for(const v of nqdm(arr)) {
    // do something
}

Results:

  4.70% [=====>                                                            ] 00:00:04 00:01:37 [1923.72 iter/sec]

Specify times of iteration instead of iterables

for(const i of nqdm(300)) {
    // do something
}

Results:

  4.70% [=====>                                                            ] 00:00:04 00:01:37 [1923.72 iter/sec]

Manualy process

const prgrs = nqdm()
while(true) {
    prgrs.process()
}

Results:

  327 [=============================================================================] 00:00:04 [2089.72 iter/sec]

Options

length

You can manually specify total length of items when you works with iterable objects without 'length' property. (Typically for generators.)

function* gen(num) {
    for(let i=0;i<num;i++){
        yield i
    }
}

const g = gen(100)

for(const v of nqdm(g, {length: 100})){
    // do something
}

dest

Choose where to write progress indicator ('stdout' or 'stderr'), another value will be ignored.
Defaults to be 'stdout'.

for(const v of nqdm(arr, {dest: 'stderr'})) {
    // now nqdm will write the progress into process.stderr
}

callback

You can define your own callback function being called per iteration.

const cb = ({current, total, ratio, elapsed, remain, perSec}) => {
    console.log({current, total, ratio, elapsed, remain, perSec})
}

for(const v of nqdm(arr, {callback: cb})) {
    // do something
}

silent

nqdm will display nothing when set this option to true. (designed to use with callback function.)

for(const v of nqdm(arr, {silent: true})) {
    // now nqdm displays nothing.
}