Logs a progress bar and estimation for how long a Promise will take to complete. This library tracks previous durations in order to provide more accurate estimates over time.

Installation

npm install progress-estimator yarn add progress-estimator

Usage example

const createLogger = require ( ' progress-estimator ' ) ; const { join } = require ( ' path ' ) ; const logger = createLogger ( { storagePath : join ( __dirname , ' .progress-estimator ' ) , } ) ; async function run ( ) { await logger ( promiseOne , " This is a promise " ) ; await logger ( promiseTwo , " This is another promise. I think it will take about 1 second " , { estimate : 1000 } ) ; }

API

This method is the default package export. It creates and configures a logger function (documented below). The following configuration options are supported. (They apply only to the logger instance that's returned.)

name type Description logFunction Function Custom logging function. Defaults to log-update . Must define .done() and .clear() methods. spinner object Which spinner from the cli-spinners package to use. Defaults to dots . storagePath string Where to record durations between runs. Defaults to os.tmpdir() . theme object Custom chalk theme. Look to the default theme for a list of required keys.

This method logs a progress bar and estimated duration for a promise. It requires at least two parameters– a Promise and a label (e.g. "Running tests"). The label is SHA1 hashed in order to uniquely identify the promise.

An optional third parameter can be provided as well with the following keys: