0.3.1 • Published 2 years ago

progress-estimator v0.3.1

Weekly downloads
55,517
License
MIT
Repository
github
Last release
2 years ago

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.

Demo

🎉 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.)

nametypeDescription
logFunctionFunctionCustom logging function. Defaults to log-update. Must define .done() and .clear() methods.
spinnerobjectWhich spinner from the cli-spinners package to use. Defaults to dots.
storagePathstringWhere to record durations between runs. Defaults to os.tmpdir().
themeobjectCustom 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:

nametypeDescription
estimateNumberEstimated duration of promise. (This value is used initially, until a history of actual durations have been recorded.)
idStringUniquely identifies the promise. This value is needed if the label string is not guaranteed to be unique.
@adbayb/terminal-kit@giveerr/rollpkgtsdx-extrayh-pagegql_din_mod@infinitebrahmanuniverse/nolb-progexport-tsbloombotexpand-react-bridgemagneum@everything-registry/sub-chunk-2478youtube-execytdl-exec@leijingdao/tsdxmuyuan-cliwebchetestapauxci-cliutsdx@donapot/mylibtest@cryptocode99/token-lists@commercelayer/commercelayer-seeder-cli@cute-apocalypse/react-tree@cyriacbr/tsdx@developertown/tsdx@percent/percent-api-hooksiuun-vue-clijuejin-savejzt-clijxt-rollpkgsushi-sdk-ftmstub-citystub-villagesurfwaxttsdxts-lib-toolstnpm-bridge@ambroseus/tsdx@astrocoders/docz-core@aw-web-design/tcm-cli@behzadebrhm/utils@bezael-challenge/innoit-date-format@bkwld/lightkeeper@bluelovers/tsdx@bhzdbash/utils@breakinferno/tsdxf@carbon/cli@chancethedev/cli@chance/tsdx@abdulkaderptp/tsdx@a4to/yt-cli@deepakvishwakarma/node-claat@design-systems/create-commandyt-rsstsdxtsdx-esmtsdx-sasstsdx-with-svgtsdx2tsdxwtsdyts3xts-firebase-rules@hproinformatica/functions@humanity.cash/types@gbozee/tsdx@gomah/tsdx@eliteswap/token-lists@laconic/rollup-script@inti-ar/evm-chains@lgfe/ls-template-cli-rollup-script@meysam213/react-leaflet@mr-huang/node-cli-utils@massivepixel/use-query@neuraiproject/chains@n3tr/tsdx@epigraph/epigraph-analytics@moln/tsdx@maujzs/branch-release@mbcrm/cli@jarrku/foreach-tsdx@johnrom/tsdx@known-as-bmf/tscli@koihe/api-type-cli@dvaji/tsdx@juxtacode/rollup-plugin-showprogress@kesplus/cli@pureadmin/cli@qandq/plugins-common@prismify/tsdx@projectbabelfish/defikingdoms-sdk@scottsidwell/notion-export-to-md@obstinate/rollup-script@pain-org/rollup@skpm/test-runner@shuttlerock/tsdx@smontero/tsdx@reslow/climrm-uimoonwalkerswap-default-token-lists
0.3.1

2 years ago

0.3.0

5 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago