A simple JS timer library, with easy subscription to the updating time.
npm install --save timesub
or
yarn add timesub
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.
See the examples/
directory for usage examples.
You can run the examples with:
yarn run example <exampleFile.js>
Distributed under the terms of the MIT license.