# @mcbe/timer

> setTimeout/setInterval supports

Latest version **2.0.8** (published 2021-01-16) · ISC license · 0 weekly downloads

## Install

```sh
npm install @mcbe/timer
pnpm add @mcbe/timer
yarn add @mcbe/timer
bun add @mcbe/timer
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.8 |
| Published | 2021-01-16 |
| First published | 2019-09-30 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 10.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | ruakr |
| Maintainers | karikera |

## Links

- npm: https://www.npmjs.com/package/@mcbe/timer
- npm.io page: https://npm.io/package/@mcbe/timer

## Dependencies (4)

- [@mcbe/event](https://npm.io/package/@mcbe/event.md) ^2.0.8
- [krchecktimer](https://npm.io/package/krchecktimer.md) ^2.0.4
- [@mcbe/nexttick](https://npm.io/package/@mcbe/nexttick.md) ^2.0.8
- [@mcbe/dummy-console](https://npm.io/package/@mcbe/dummy-console.md) ^2.0.4

## Recent versions

- 2.0.8 (latest) — 2021-01-16
- 2.0.4 — 2020-12-23
- 2.0.1 — 2020-12-23
- 1.0.9 — 2020-07-01
- 1.0.8 — 2020-04-11
- 1.0.7 — 2019-10-06
- 1.0.6 — 2019-10-06
- 1.0.5 — 2019-10-03
- 1.0.4 — 2019-10-02
- 1.0.3 — 2019-10-01
- 1.0.2 — 2019-10-01
- 1.0.1 — 2019-10-01
- 1.0.0 — 2019-09-30

## README

## About this
setTimeout/setInterval supports

## Example

```ts
import { realTime } from '@mcbe/timer/realtime';
realTime.install();

// or

import { tickTime } from '@mcbe/timer/ticktime';
tickTime.install();


```

## @mcbe/event dependency
`@mcbe/event` will freeze system object to prevent modifiying `initialize` `update` `shutdown` functions.  
```ts
// please use
import { sharedEvents } from "@mcbe/event";
sharedEvents.initialize.on(()=>{ /* codes */ });
sharedEvents.update.on(()=>{ /* codes */ });
sharedEvents.shutdown.on(()=>{ /* codes */ });
// instead of 
system.initialize = ()=>{ /* codes */ };
system.update = ()=>{ /* codes */ };
system.shutdown = ()=>{ /* codes */ };
```

## References

```ts

/// @mcbe/timer/realtime
const TIME_PER_SECONDS = 1000;
const realTime:Timer;

/// @mcbe/timer/ticktime
const TICK_PER_SECONDS = 20;
const tickTime:Timer;

/// @mcbe/timer

class Timer
{    // current time
    now:number;
    
    /**
     * @param now starting number of timer
     * @param getTime get time 
     */
    constructor(now:number, getTime:(prev:number)=>number);
    
    // promise wrapping of setTimeout
    promise(wait:number):Promise<void>;

    // setTimeout
    timeout(fn:(...args:any[])=>void, wait:number, ...args:any[]):Timeout;
    // setInterval
    interval(fn:(...args:any[])=>void, interval:number, ...args:any[]):Timeout;
    clearTimeout(timeout:Timeout):void;
    clearInterval(timeout:Timeout):void;

    /**
     * Use it with setTimeout & setInterval
     */
    install():void;
}

class Timeout implements NodeJS.Timeout
{
}

```

---
_Source: https://npm.io/package/@mcbe/timer · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
