https://github.com/matrixai/js-timer
Reified timer object replacing `setTimeout`, use it like a "Stopwatch"
https://github.com/matrixai/js-timer
Last synced: 9 months ago
JSON representation
Reified timer object replacing `setTimeout`, use it like a "Stopwatch"
- Host: GitHub
- URL: https://github.com/matrixai/js-timer
- Owner: MatrixAI
- License: apache-2.0
- Created: 2022-09-12T03:18:32.000Z (over 3 years ago)
- Default Branch: staging
- Last Pushed: 2025-02-04T01:15:08.000Z (11 months ago)
- Last Synced: 2025-03-23T03:15:56.568Z (10 months ago)
- Language: TypeScript
- Homepage: https://polykey.com
- Size: 328 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# js-timer
This library provides a reified `Timer` replacing the imperative `setTimeout` in JS. This is useful for keeping track of elapsed time and calculating how time is left. Think of this as a "Stopwatch".
This does not use `Date.now()`, it uses `Performance` API.
## Installation
```sh
npm install --save @matrixai/timer
```
## Usage
```ts
import { Timer } from '@matrixai/timer';
const t1 = new Timer(() => 2, 10);
const result = await t1;
```
## Development
Run `nix develop`, and once you're inside, you can use:
```sh
# install (or reinstall packages from package.json)
npm install
# build the dist
npm run build
# run the repl (this allows you to import from ./src)
npm run tsx
# run the tests
npm run test
# lint the source code
npm run lint
# automatically fix the source
npm run lintfix
```
### Docs Generation
```sh
npm run docs
```
See the docs at: https://matrixai.github.io/js-timer/
### Publishing
Publishing is handled automatically by the staging pipeline.
Prerelease:
```sh
# npm login
npm version prepatch --preid alpha # premajor/preminor/prepatch
git push --follow-tags
```
Release:
```sh
# npm login
npm version patch # major/minor/patch
git push --follow-tags
```
Manually:
```sh
# npm login
npm version patch # major/minor/patch
npm run build
npm publish --access public
git push
git push --tags
```