'use strict' const Progress = keys => { const stack = new Set(keys.filter(key => key)) const loaded = new Set() const failed = new Set() this.ratio = () => { return loaded.size / stack.size } this.percentage = () => { return (100 * this.ratio()).toFixed(2) } const render = () => `
${'|'.repeat(this.ratio() * 10)} ${loaded.size !== stack.size ? this.percentage() + '% ' : ''} ${loaded.size === stack.size ? 'Complete' : 'Loading'} ${failed.size !== 0 ? `(${failed.size} failed)` : ''}