Skip to content

A simple JS timer library, allowing you to subscribe to timer updates

License

Notifications You must be signed in to change notification settings

Noah2610/timesub

Repository files navigation

timesub

A simple JS timer library, with easy subscription to the updating time.

Install

npm install --save timesub

or

yarn add timesub

Usage

import { createTimer } from "timesub";

// Optional timer options.
// You can omit any of these properties.
// These are the default values:
const options = {
    duration: "infinite" // "infinite" or number, to set the duration.
    updateInterval: 100, // Delay in milliseconds between every update.
};

// Create the timer.
const timer = createTimer(options);

// Start the timer.
timer.play();

// SUBSCRIBE API
// You can subscribe to time updates, by passing a
// callback function to the `subscribe` function.
// Returns an "unsubscribe" function, which you can call to, uuuh, unsubscribe.
const unsubscribe = timer.subscribe(
    ({ time, ...timer }, event) => {
        console.log(`Current time: ${time}`);

        if (event.type === "finish") {
            console.log("Timer finished!")
        }
    },
);

// Unsubscribe by calling the returned function.
unsubscribe();

// EVENT LISTENER API
// Similar to the `subscribe` function, you can listen to specific events.
// The callback function gets the same arguments as in the `subscribe` callback.
const unsubscribeListener = timer.on("finish", ({ time, ...timer }, event) =>
    console.log(`Timer finished at ${time}!`),
);

unsubscribeListener();

// API
timer.play();
timer.pause();
timer.togglePlay();
timer.reset(); // Resets back to 0 and stops the timer.
const currentTime = timer.getTime();
timer.setTime(1000); // Set a new time in milliseconds.

// For more available API functions see the docs...

API documentation is available here.
Generated by typedoc and hosted on GitHub pages.

Examples

See the examples/ directory for usage examples.
You can run the examples with:

yarn run example <exampleFile.js>

Licensing

Distributed under the terms of the MIT license.

About

A simple JS timer library, allowing you to subscribe to timer updates

Resources

License

Stars

Watchers

Forks

Packages

No packages published