Big News: Socket Selected for OpenAI's Cybersecurity Grant Program.Details
Socket
Book a DemoSign in
Socket

@lukeed/ms

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lukeed/ms

A tiny (414B) and fast utility to convert milliseconds to and from strings.

latest
Source
npmnpm
Version
2.0.2
Version published
Weekly downloads
2.9M
-4.82%
Maintainers
1
Weekly downloads
 
Created
Source

ms CI codecov

A tiny (414B) and fast utility to convert milliseconds to and from strings.

NOTICE: This is a fork of vercel/ms!
In June 2019, I opened a PR with signficiant performance and code size improvements. After nearly 2 years of silence, it was eventually closed. :cry: A year into my wait, I started anew (this repo), hoping to improve upon my own improvements.

This module is delivered as:

Install

$ npm install --save @lukeed/ms

Usage

import { parse, format } from '@lukeed/ms';

// string => number
parse('2 days');   //=> 172800000
parse('1d');       //=> 86400000
parse('10h');      //=> 36000000
parse('2.5 hrs');  //=> 9000000
parse('2h');       //=> 7200000
parse('1m');       //=> 60000
parse('5s');       //=> 5000
parse('1y');       //=> 31557600000
parse('100');      //=> 100
parse('-3 days');  //=> -259200000
parse('-1h');      //=> -3600000
parse('-200');     //=> -200

// number => string
format(60000);             //=> '1m'
format(2 * 60000);         //=> '2m'
format(-3 * 60000);        //=> '-3m'
format(parse('10 hours')); //=> '10h'

// number => string (long)
format(60000, true);             //=> '1 minute'
format(2 * 60000, true);         //=> '2 minutes'
format(-3 * 60000, true);        //=> '-3 minutes'
format(parse('10 hours'), true); //=> '10 hours'

API

ms.parse(input)

Returns: Number

Parses the input string, returning the number of milliseconds.

input

Type: String

The human-readable time string; eg: 10min, 10m, 10 minutes.

ms.format(milli, long?)

Returns: Number

Formats the millisecond count to a human-readable time string.

Important: The output will be rounded to the nearest whole integer.

milli

Type: Number

The number of milliseconds.

long

Type: Boolean
Default: false

Whether or not the output should use the interval's long/full form; eg hour or hours instead of h.

Note: When long, the count and interval will be separated by a single space.
Also, when long, the interval may be pluralized; eg 1 second vs 2 seconds.

Benchmarks

Running on Node.js v12.18.4

Validation :: parse
  ✔ lukeed/ms
  ✔ zeit/ms

Benchmark :: "parse"
  lukeed/ms      x 351,319 ops/sec ±0.31% (96 runs sampled)
  zeit/ms        x 245,576 ops/sec ±1.66% (94 runs sampled)

Benchmark :: "parse" (long)
  lukeed/ms      x 335,538 ops/sec ±0.50% (94 runs sampled)
  zeit/ms        x 265,410 ops/sec ±1.72% (95 runs sampled)


Validation :: format
  ✔ lukeed/ms
  ✔ zeit/ms

Benchmark :: "format"
  lukeed/ms      x 4,109,440 ops/sec ±0.35% (94 runs sampled)
  zeit/ms        x 3,420,198 ops/sec ±1.61% (94 runs sampled)

Benchmark :: "format" (long)
  lukeed/ms      x 3,402,872 ops/sec ±0.14% (97 runs sampled)
  zeit/ms        x 1,344,908 ops/sec ±3.68% (96 runs sampled)

Credits

This is obviously a fork of zeit/ms.

I opened a PR in June 2019 that introduced significant performance gains and code reduction — it was ignored for nearly two years. This repository is a from-scratch re-implementation that takes the goals of that PR a bit further.

License

MIT © Luke Edwards

Keywords

ms

FAQs

Package last updated on 28 Nov 2023

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