Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

arrival-time

Package Overview
Dependencies
Maintainers
0
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arrival-time

Simple and powerful progress time estimation (ETA)

  • 1.0.6
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8
decreased by-11.11%
Maintainers
0
Weekly downloads
 
Created
Source

Simple and powerful time estimation (ETA).

Ideal to draw progress in CLI, web and mobile.

  • Zero dependencies. Works everywhere - node, browsers, toaster, etc.
  • ETA, speed measurements and average step time estimation

Usage

Install with npm i arrival-time or yarn add arrival-time

import { Estimation } from 'arrival-time';

const estimation = new Estimation();

// Update progress to 25 of 100, and get measurements
const measure1 = estimation.update(25, 100);
console.log("Estimated time", measure1.estimate); // Estimated time 0.11754299999961404
console.log("Estimated speed", measure1.speed); // Estimated speed 638064.3679355322

console.log(measure1);
// {
// 	timeDelta: 0.039180999999871347,
// 	averageTime: 0.0015672399999948539,
// 	progressLeft: 75,
// 	speed: 638064.3679355322,
// 	estimate: 0.11754299999961404
// }

console.log(estimation.update(50, 100))
// {
// 	timeDelta: 12.311336999999867,
// 	averageTime: 0.24622673999999733,
// 	progressLeft: 50,
// 	speed: 4061.297322947178,
// 	estimate: 12.311336999999867
// }

API

constructor

type Options = {
	// Current progress (default 0)
	progress?: number;
	// Total progress (default 100)
	total?: number;
	// Time to start count from (default - current time)
	startTime?: number;
	// Optionally, you may provide your own clock implementation,
	// that will return time as number
	timeFetcher?: TimeFetcher;
};

update(progress: number, total?: number)

Update current progress, and optionally update total progress.

Returns updated object with measurements.

measure(tick = 1000)

Return measurements object

type Measurements = {
	/**
	 * Time delta between start time and current time
	 */
	timeDelta: number;
	/**
	 * Average time per one progress step
	 */
	averageTime: number;
	/**
	 * Left progress
	 */
	progressLeft: number;
	/**
	 * Progression per `tick` (default 1000ms)
	 */
	speed: number;
	/**
	 * Estimated time in ms until complete
	 */
	estimate: number;
};

estimate()

Return estimate value

reset(time?: number)

Reset start time to provided or current time

now()

Return current timestamp

  • humanize-duration - converts time in ms to human readable time
  • log-update - print and redraw messages to stdout

Keywords

FAQs

Package last updated on 05 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc