magic-stopwatch v1.0.1
npm install magic-stopwatch - yarn add magic-stopwatch
A light and pause-able stopwatch module.
Quickstart
import { Stopwatch } from 'magic-stopwatch';
// By default, the stopwatch uses the 'performance' type if available
// - 'performance' type uses Performance Hooks: https://nodejs.org/api/perf_hooks.html#performancenow
// - 'date' type to use Date.now()
const stopwatch = new Stopwatch({ type: 'performance' });
stopwatch.start();
// do something for 5 seconds...
const middleLap = stopwatch.lap();
// { elapsed: 5000, timestamp: 1662925989428 }
// do something for 5 more seconds...
const stopLap = stopwatch.stop();
// { elapsed: 10000, timestamp: 1662925989428 }You can also use this within modern browsers (that can atleast support BigInt):
<script src="https://unpkg.com/magic-stopwatch@1.0.1/webpack/magic-stopwatch.min.js"></script>And can be accessed with the magicStopwatch global.
const stopwatch = new magicStopwatch.Stopwatch();API
Stopwatch- A stopwatch that records in milliseconds.new Stopwatch({ type, startNow })type- The type of timing the stopwatch will use, defaults toperformanceif available, else it will usedate. (Date.now())startNow- Whether or not to immediately start the stopwatch.
laps: StopwatchLap[]- The laps the stopwatch has, recorded with.lap().elapsed: number- A getter that returns the amount of time elapsed on the stopwatch.stopped: boolean- Whether or not the stopwatch has stopped.startTime: number- The time the stopwatch started at. Will be-1if not started.stopTime: number- The time the stopwatch stopped at. Will be-1if not stopped.start()- Starts the stopwatch.lap() -> StopwatchLap- Creates a lap and stores it inlaps.stop(recordLap) -> StopwatchLap- Stops the stopwatch.recordLap = false- Whether or not to record the lap inlaps.
reset()- Resets the stopwatch.
PreciseStopwatch- A stopwatch that records in nanoseconds.new PreciseStopwatch({ type, startNow })type- The type of timing the stopwatch will use, defaults tohrtimeif available, else it will useperformance.startNow- Whether or not to immediately start the stopwatch.
laps: PreciseStopwatchLap[]- The laps the stopwatch has, recorded with.lap().elapsed: number- A getter that returns the amount of time elapsed on the stopwatch.stopped: boolean- Whether or not the stopwatch has stopped.startTime: bigint- The time the stopwatch started at. Will be-1nif not started.stopTime: bigint- The time the stopwatch stopped at. Will be-1nif not stopped.start()- Starts the stopwatch.lap() -> PreciseStopwatchLap- Creates a lap and stores it inlaps.stop(recordLap) -> PreciseStopwatchLap- Stops the stopwatch.recordLap = false- Whether or not to record the lap inlaps.
reset()- Resets the stopwatch.