Complexity Score
Low
Open Issues
0
Dependent Projects
93
Weekly Downloadsglobal
65,297
Downloads
Readme
progress-estimator
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.
🎉 Become a sponsor or ☕ Buy me a coffee
Installation
# use npm
npm install progress-estimator
# use yarn
yarn add progress-estimator
Usage example
const createLogger = require('progress-estimator');
const { join } = require('path');
// All configuration keys are optional, but it's recommended to specify a storage location.
// Learn more about configuration options below.
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
createLogger(optionalConfiguration)
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 DescriptionlogFunction
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.
logger(promise, labelString, options)
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:
name type Descriptionestimate
Number
Estimated duration of promise. (This value is used initially, until a history of actual durations have been recorded.)
id
String
Uniquely identifies the promise. This value is needed if the label string is not guaranteed to be unique.
Dependencies
CVE IssuesActive
0
Scorecards Score
1.80
Test Coverage
No Data
Follows Semver
Yes
Github Stars
2,142
Dependenciestotal
10
DependenciesOutdated
8
DependenciesDeprecated
0
Threat Modelling
No
Repo Audits
No
Learn how to distribute progress-estimator in your own private NPM registry
$npm config set registry
https://npm.cloudsmith.com/owner/repo
/Processing...
✓Done
$npm install progress-estimator
/Processing...
✓Done
9 Releases
NPM on Cloudsmith