npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

task-duration-logger

v1.0.0

Published

A lightweight utility to log process durations, track average times, and estimate remaining time for tasks. Ideal for monitoring the performance of batch operations or long-running processes.

Downloads

50

Readme

Task Duration Logger

This lightweight utility is designed to help you accurately estimate the remaining time for completing long-running tasks.

Installation

You can install this package using npm:

npm install task-duration-logger

Usage

Importing the Package

import { TimeTracker } from 'task-duration-logger';

Example Usage

// Initialize with the total number of items to track
const tracker = new TimeTracker(10);

// Simulate processing of an item
const startTime = Date.now();

// Log the duration of the process for a single item
tracker.logProcess(startTime, 'Sample Task', 1);

Available Functions

logDuration(startTime: number, label: string): number

Logs the duration of a process and returns the time in milliseconds.

  • startTime: The start time of the process (in milliseconds, typically Date.now()).
  • label: A label to describe the task.

getFormattedDuration(durationInMs: number): string

Formats a duration in milliseconds into a readable string (HH:MM:SS or MM:SS).

  • durationInMs: The duration in milliseconds.

calculateAverage(numbers: number[]): number

Calculates the average value of an array of numbers.

  • numbers: An array of numbers (e.g., durations).

Class: TimeTracker

Constructor: new TimeTracker(totalItems: number)

Creates an instance of TimeTracker to log task durations and estimate the time left for completion.

  • totalItems: The total number of tasks to be tracked.

Method: logProcess(startTime: number, itemName: string, currentCount: number): void

Logs the duration of a specific task and estimates the remaining time based on the average duration of past tasks.

  • startTime: The start time of the current task (in milliseconds).
  • itemName: The name of the task or item being processed.
  • currentCount: The current count of items that have been processed.

Example Use Cases

Batch Processing Time Estimation

When processing a large number of files or tasks, you can use the package to track the duration of each task and estimate how long it will take to process the entire batch. This is useful for providing progress updates and managing expectations on long-running jobs.

API Request Monitoring

In scenarios where multiple API requests are sent in sequence, the package can log the time each request takes and estimate how long the remaining requests will take to complete. This helps in monitoring performance bottlenecks and optimizing request handling.

Automated Task Tracking

Use the package in a task automation system to track and log the time it takes for each automation step to complete. By calculating the average duration, you can estimate the time required for the remaining automation tasks, improving scheduling and system efficiency.

License

This package is licensed under the MIT License. See the LICENSE file for more details.

Contributing

Feel free to open issues or submit pull requests to improve this package. Contributions are welcome!