instant-rs

1.0.1Β β€’Β PublicΒ β€’Β Published

instant-rs

npm version npm downloads lint by git commit msg linter

A better console.time.

πŸ’° Time is money, a very tiny library to convert time costs of your program to a human readable format use pretty-ms and designed in a good-DX API style like Rust's πŸ¦€ instant.elapsed.

Usage

import Instant from 'instant-rs'

// Mark beginning time
const now = Instant.now();

await doSthExpensive()

// Show time costs
console.log("time costs", now.elapsed());

elapsed() will return the time costs of doSthExpensive() in a readable string format.

1337000000 => 'time costs 15d 11h 23m 20s'
1337 => 'time costs 1.3s'
133 => 'time costs 133ms'

The console.time Problem

In JavaScript:

console.time('time costs')
await sleep(10) // 10ms 100ms 1000ms
console.timeEnd('time costs')

// Output:
// time costs: 11.322021484375 ms πŸ˜€
// time costs: 1001.489990234375 ms πŸ€”
// time costs: 100102.08911132812 ms 😑

While in Rust, time costs is more readable and the API is easier to use and the code is more DRY because we don't need to write label twice:

use std::time::{Duration, Instant};
use std::thread::sleep;

fn main() {
    let now = Instant::now();
    sleep(Duration::from_millis(10)); // 10ms 100ms 1000ms
    println!("time costs {:?}", now.elapsed());
}

// Output:
// time costs 10.07827ms // 10 ms πŸ˜€
// time costs 100.077897ms // 100 ms 😊
// time costs 1.000184719s // 1000 ms πŸ˜‹
// time costs 10.000086342s // 10_000 ms πŸ˜‡

That's why I wrote this package.

API

elapsed

function elapsed(options?: IOptions)

Support all options of pretty-ms https://www.npmjs.com/package/pretty-ms#api.

for example time cost is 1234ms:

// `compact` option
now.elapsed({ compact: true });
//=> '1s'

// `verbose` option
now.elapsed({ compact: true });
//=> '1.2 seconds'

now

function now(): Instant

Package Sidebar

Install

npm i instant-rs

Weekly Downloads

2

Version

1.0.1

License

MIT

Unpacked Size

7.75 kB

Total Files

8

Last publish

Collaborators

  • legend80s