✨ ⏱️
magic-stopwatch
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 toperformance
if 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-1
if not started. -
stopTime: number
- The time the stopwatch stopped at. Will be-1
if 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 tohrtime
if 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-1n
if not started. -
stopTime: bigint
- The time the stopwatch stopped at. Will be-1n
if 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.
-