JSPM

@zhangfuxing/multi-progress

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

multi-line progress bar output in terminal written in nodejs

Package Exports

  • @zhangfuxing/multi-progress
  • @zhangfuxing/multi-progress/index.js

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 (@zhangfuxing/multi-progress) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Multi Progress Bar

multi-line progress bar output in terminal written in nodejs

Install

$ npm i @zhangfuxing/multi-progress

Useage

const ProgressBars = require('@zhangfuxing/multi-progress');

const title = 'download files';
const total = 100;

const bars = new ProgressBars({
  title,
  // clear: true,
  complete: '*',
  incomplete: '.',
  display: '[:bar] :text :percent :time :completed/:total'
});

let completed1 = 0;
let completed2 = 0;

function downloading() {
  if (completed1 <= total || completed2 <= total) {
    completed1 += 1
    completed2 += 2
    bars.render([
      { completed: completed1, total, text: "file1" },
      { completed: completed2, total, text: "file2" }
    ]);

    setTimeout(function () {
      downloading();
    }, 100)
  }
}

downloading();

More examples in the examples folder.

Type definitions

declare class ProgressBars {
  /**
   * Options:
   *   - `title` optional, Progress bar title, default: ''
   *   - `width` optional, the displayed width of the progress, default: 50
   *   - `complete` optional, completion character, default: colors.bgGreen(' '), can use any string
   *   - `incomplete` optional, incomplete character, default: colors.bgWhite(' '), can use any string
   *   - `interval` optional, minimum time between updates in milliseconds, default: 16
   *   - `display` optional, What is displayed and display order, default: ':title :percent :bar :time :completed/:total'
   *   - `clear` optional, clear the bar on completion, default: false
   */
  constructor(options: ProgressBarOptions);

  /**
   * "render" the progress bar with completed and optional `total`
   * 
   *  - `bars` progress bars
   *  - `bars.completed` completed value
   *  - `bars.total` optional, total number of ticks to complete, default: 100
   *  - `bars.text` optional, text displayed per ProgressBar, default: ''
   */
  render(bars: []): void;

  /**
   * interrupt the progress bar and write a message above it
   */
  console(message: string | number): void;

  /**
   * end a progress bar.
   */
  end(): void;
}

Screenshots

default
default complete
complete display: What is displayed and display order display console: interrupt the progress bar and write a message above it
console
clear: clear the bar on completion
clear

More screenshots in the screenshots folder.