JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 28
  • Score
    100M100P100Q51840F
  • License MIT

fluent timer with laps, microtime (polyfill) + parsing, multiple timers, shorthand diffs & specifications

Package Exports

  • fliptime

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fliptime) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

⛓⏲ fliptime

NPM version MIT License fliphub

fluent timer with laps, microtime + parsing, multiple timers, (fallback to performance & Date), shorthand diffs & specifications

usage

yarn add fliptime
npm i fliptime --save
const timer = require('fliptime')

uses microtime polyfill and if you install microtime it will require it when available (for node_gyp compat reasons) formatted with microseconds

simple

timer.start('canada')
setTimeout(() => timer.end('canada').log('canada'), 500)

laps

timer.start('canada')
const lapper = setInterval(() => {
  timer.lap('canada')
}, 1000)
setTimeout(() => clearInterval(lapper), 10000)
timer.logLaps('canada')

took

timer.start('canada')
setTimeout(() => console.log(timer.end('canada').took('canada')), 500)

multiple

const sleepfor = require('sleepfor')
timer.start('eh')
timer.start('canada')

sleepfor(100)
timer.lap('canada')
timer.stop('eh')
sleepfor(100)
timer.lap('canada')

timer
.stop('canada')
.log('eh')
.log('canada')
.logLaps('canada')

// second param is whether to use laps
const lapTime = timer.msTook('canada', true)

formats

timer.start('eh')
timer.stop('eh')

const microseconds = timer.took('eh')
const ms = timer.msTook('eh')
const parsed = timer.parsedTook()

⚖️ tillNow

diff for each: milliseconds, seconds, minutes, hours, days, years.

const now = Date.now()
sleepfor(60000)
const {ms, s, m, h, d, y} = timer.tillNow(now)

// ms === 60000
// s === 60
// m === 1
// h === 0
// d === 0
// y === 0

⚖️ tillNowSatisfies

check that the difference is equal or greater than specification.

const then = Date.now()
sleepfor(60000)

// seconds, hours, minutes, days, years...
// or shorthand: s, h, m, d, y
//
// true: >= 60 seconds
const satisfies = timer.tillNowSatisfies(then, {seconds: 60})

🏊 additional

const now = timer.microtime.now()
const micro = timer.parseMicro(now)

timer.times = {}
timer.laps = {}
timer.index = 0

example

timer.times[name].start
timer.times[name].end
timer.times[name].diff