mirror of
https://github.com/Noah2610/timesub.git
synced 2026-10-13 19:19:40 +02:00
A simple JS timer library, allowing you to subscribe to timer updates
- TypeScript 95.9%
- Shell 4.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| bin | ||
| docs | ||
| examples | ||
| src | ||
| tests | ||
| .gitignore | ||
| .prettierrc | ||
| jest.config.ts | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| tsconfig.test.json | ||
| yarn.lock | ||
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...
Documentation
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.