magic-stopwatch
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

⏱️
magic-stopwatch

NPM version NPM downloads ESLint status

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 to performance if available, else it will use date. (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 in laps.

    • stop(recordLap) -> StopwatchLap - Stops the stopwatch.

      • recordLap = false - Whether or not to record the lap in laps.
    • 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 to hrtime if available, else it will use performance.
      • 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 in laps.

    • stop(recordLap) -> PreciseStopwatchLap - Stops the stopwatch.

      • recordLap = false - Whether or not to record the lap in laps.
    • reset() - Resets the stopwatch.

Readme

Keywords

Package Sidebar

Install

npm i magic-stopwatch

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

43.2 kB

Total Files

19

Last publish

Collaborators

  • snazzah