New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

duri

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

duri

A tiny library for working with durations.

latest
npmnpm
Version
0.0.1
Version published
Maintainers
1
Created
Source

duri

Created by NPM License

Overview

Many functions that require a duration, require passing just a number value. This makes it to find out if the duration is in seconds, milliseconds or other.

sleep(1_000); // are these seconds? milliseconds?
sleep(Duration.seconds(1).toMilliseconds());

// OR

sleep(Duration("1 second").toMilliseconds());

Author

Hey, I'm Nils. In my spare time I write about things I learned or I create open source packages, that help me (and hopefully you) to build better apps.

Installation

You can install this package with any package manager you like.

pnpm add duri

Usage

Static Factory Methods

const time = Duration.seconds(5);
const timeInMilliseconds = time.toMilliseconds(); // 5_000 milliseconds

Natural Language Parsing

// Callable factory with string input
const duration = Duration("5 seconds");
duration.toSeconds(); // 5

// Compact forms (no space)
Duration("1s"); // 1 second
Duration("500ms"); // 500 milliseconds
Duration("10m"); // 10 minutes
Duration("2h"); // 2 hours

// Aliases supported (case-insensitive)
Duration("5 sec");
Duration("10 min");
Duration("2 hr");
Duration("500 milliseconds");

// Decimals and underscores
Duration("1.5 hours"); // 1.5 hours
Duration("1_000 seconds"); // 1000 seconds

// Whitespace is flexible
Duration("  5   seconds  ");

Numeric Constructor

// Direct numeric input (seconds)
const duration = new Duration(5); // 5 seconds

Constraints

  • English only: US spelling (second, seconds, not secs)
  • Single unit: Multi-unit strings like "1 hour 30 minutes" are not supported
  • No negatives: Negative durations will throw TypeError
  • Unit required: Bare numbers like "5" will throw TypeError
  • Supported units:
    • Milliseconds: ms, millisecond, milliseconds
    • Seconds: s, sec, second, seconds
    • Minutes: m, min, minute, minutes
    • Hours: h, hr, hour, hours

Error Handling

// These throw TypeError:
Duration("5"); // No unit
Duration("-5 seconds"); // Negative
Duration("1,000 seconds"); // Comma separator
Duration("5 days"); // Unsupported unit
Duration("1h30m"); // Multi-unit

Feedback and Contributing

I highly appreceate your feedback! Please create an issue, if you've found any bugs or want to request a feature.

FAQs

Package last updated on 23 Oct 2025

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