GithubHelp home page GithubHelp logo

wilcosp / ms-prettify Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kartikesingh/ms-prettify

0.0 0.0 0.0 60 KB

An module to easily convert milliseconds to human readable time and opposite.

License: MIT License

TypeScript 96.88% JavaScript 3.12%

ms-prettify's Introduction

What is it?

An module to convert MS to human readable time to MS with advanced options.

Installation

npm i @wilcosp/ms-prettify --save
pnpm add @wilcosp/ms-prettify
yarn add @wilcosp/ms-prettify

Can also be used via a cdn, check "how to import" for all known available CDNs.

Note

  • Requires node 16 or later, for browsers at least Chrome/Edge 88, Firefox 85 or Safari 14

Why?

  • Easy to use.
  • Advanced options for manipulating the result.
  • Typescript definitions included.
  • Support for ES Modules & Commonjs.
  • Minified for browsers.

how to import

// Esm
import { pms } from "@wilcosp/ms-prettify";
import pms from "@wilcosp/ms-prettify"; // default export
import { converter } from "@wilcosp/ms-prettify"; // alternative named export,
// Commonjs
const { pms } = require("@wilcosp/ms-prettify"); //no "export = " type of export available for commonjs
// Jsdelivr
import { pms } from "https://cdn.jsdelivr.net/npm/@wilcosp/[email protected]";
// Skypack (check for a pinned url)
import { pms } from "https://cdn.skypack.dev/@wilcosp/[email protected]";
// Esm.sh
import { pms } from "https://esm.sh/@wilcosp/[email protected]";
// Unpkg
import { pms } from "https://unpkg.com/@wilcosp/[email protected]";
// Deno (may look into how to publish to deno.land)
import { pms } from "npm:@wilcosp/[email protected]";

How?

import { pms } from "@wilcosp/ms-prettify";

console.log(pms("1hour 10 min")); // Output => 4200000
console.log(pms("1hour 10 min 1y")); // Output => 31561800000
console.log(pms("132ms 12")); // Output => 144

console.log(pms(123456789)); // Output => 1 day 10 hours 17 minutes 36 seconds 789 milliseconds
console.log(pms(123456789, { max: 2 })); // Output => 1 day 10 hours
console.log(pms(123456789, { expanded: false })); // Output => 1 d 10 h 17 m 36 s 789 ms
console.log(pms(123456789, { max: 2, expanded: false })); // Output => 1 d 10 h

console.log(pms(354678902, { returnObject: false, till: "second" })); // Output => 4 d 2 h 31 m 18 s
console.log(pms(354678902, { returnObject: true })); // Output => { day: 4, hour: 2, minute: 31, second: 18, millisecond: 902 }

console.log(pms("hour 1s")); // Output => 100
console.log(pms("hour 1er4 d9")); // Output => undefined
console.log(pms("hour1")); // Output => undefined
console.log(pms("hello world")); // Output => undefined

Timer

import { timer } from "@wilcosp/ms-prettify/timer";
import timer from "@wilcosp/ms-prettify/timer"; //default export
const { timer } = require("@wilcosp/ms-prettify/timer"); // commonjs
import { timer } from "@wilcosp/ms-prettify"; //also exported here but will be dropped when better support for exports map in package.json

/**
 * @param {Number} time Time after which timer should be executed
 * @param {Function} callback a callback function that should be executed when the timer ends
 * @param {...any[]} args arguments for the callback function
 */
timer(
    "10 minutes 12 second",
    (data, client) => client.doSomething(data),
    await getDataSomehow()
);

// Other ways to use

// ...
await timer("15 seconds");
// now do something else

differences & similarities from original version from Shisui/KartikeSingh

  1. Support for esm & cjs modules.
  2. Minified for browser & cdn by default
  3. Converter being exported with named exports "coverter" & "pms" (does still export as default).
  4. Timer is being exported both via "@wilcosp/ms-prettify/timer" with "timer" named export & default and also exported at "@wilcosp/ms-prettify" as "timer" named export

(the none @wilcosp/ms-prettify export of timer will be dropped when there's better support for exports map from cdn providers & typescript)

Support

for support or issues, create a issue here.

ms-prettify's People

Contributors

kartikesingh avatar null8626 avatar wilcosp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.