Giter Club home page Giter Club logo

eta's Introduction

Simple ETA

Progressively determine the eta of a process out of the percentage reported.
Everything is customizable, no need to define checkpoints or any other shenanigans

Install

npm i simple-eta
const makeEta = require('simple-eta');

const eta = makeEta({ min: 0, max: 100 });

eta.start();
for (let progress = 1; progress <= 100; i += 1) {
  // Operation that takes time
  eta.report(progress);
  console.log(`Aprox. ${eta.estimate()} seconds left`);
}

Constructor

  • min {number=0} - define the lower limit of your interval
  • max {number=1} - define the upper limit of your interval
  • historyTimeConstant {number=2.5} - define (in seconds) how far into the past to consider data points as still relevant
    • higher history value: more time stable. spikes in progress speed will affect ETA less
    • lower history value: more adaptive to changes. spikes in progress speed will affect ETA more
  • autostart {boolean=true} - add the first history point when the class is instantiated or reset

Methods

.start():void

Add the first point to the history. Equivalent to .report(min).
Automatically called if autostart is true.

.reset():void

Resets the history of the ETA.

.report(number):void

Report the progress within the defined interval, adding a point to the history.
Values outside the interval will produce false results.

.estimate():number

Estimates the time left from the last .report call to complete the interval.
Time is returned in seconds. Returns Infinity when an ETA is not available.

.rate():number

Gets the estimated progress speed (progress per second).

eta's People

Contributors

dapetcu21 avatar legraphista avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.