JezK
Edit File: progress-bar.js.map
{"version":3,"file":"progress-bar.js","names":["ProgressBar","total","stdout","process","stderr","callback","chars","bars","delay","curr","_callback","clearLine","id","setTimeout","render","clearTimeout","cancelTick","ratio","Math","min","max","bar","availableSpace","columns","length","width","completeLength","round","complete","repeat","incomplete","toStartOfLine","write"],"sourceRoot":"../../../src","sources":["reporters/console/progress-bar.js"],"sourcesContent":["/* @flow */\n\nimport type {Stdout} from '../types.js';\nimport {clearLine, toStartOfLine} from './util.js';\n\nexport default class ProgressBar {\n constructor(total: number, stdout: Stdout = process.stderr, callback: ?(progressBar: ProgressBar) => void) {\n this.stdout = stdout;\n this.total = total;\n this.chars = ProgressBar.bars[0];\n this.delay = 60;\n this.curr = 0;\n this._callback = callback;\n clearLine(stdout);\n }\n\n stdout: Stdout;\n curr: number;\n total: number;\n width: number;\n chars: [string, string];\n delay: number;\n id: ?TimeoutID;\n _callback: ?(progressBar: ProgressBar) => void;\n\n static bars = [['#', '-']];\n\n tick() {\n if (this.curr >= this.total) {\n return;\n }\n\n this.curr++;\n\n // schedule render\n if (!this.id) {\n this.id = setTimeout((): void => this.render(), this.delay);\n }\n }\n\n cancelTick() {\n if (this.id) {\n clearTimeout(this.id);\n this.id = null;\n }\n }\n\n stop() {\n // \"stop\" by setting current to end so `tick` becomes noop\n this.curr = this.total;\n\n this.cancelTick();\n clearLine(this.stdout);\n if (this._callback) {\n this._callback(this);\n }\n }\n\n render() {\n // clear throttle\n this.cancelTick();\n\n let ratio = this.curr / this.total;\n ratio = Math.min(Math.max(ratio, 0), 1);\n\n // progress without bar\n let bar = ` ${this.curr}/${this.total}`;\n\n // calculate size of actual bar\n // $FlowFixMe: investigate process.stderr.columns flow error\n const availableSpace = Math.max(0, this.stdout.columns - bar.length - 3);\n const width = Math.min(this.total, availableSpace);\n const completeLength = Math.round(width * ratio);\n const complete = this.chars[0].repeat(completeLength);\n const incomplete = this.chars[1].repeat(width - completeLength);\n bar = `[${complete}${incomplete}]${bar}`;\n\n toStartOfLine(this.stdout);\n this.stdout.write(bar);\n }\n}\n"],"mappings":"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"}