timers-obj
TypeScript icon, indicating that this package has built-in type declarations

3.1.0 • Public • Published

timers-obj

GitHub CI Trunk Check Coverage Status npm

This module provides the wrappers for the standard timers module so all timers (immediate, interval and timeout) can be used as objects.

The classes are separate for each timer to prevent mistakes, ie. closing the wrong timer.

For constructors, the callback argument is after delay argument so it provides a more convenient syntax for CoffeeScript and LiveScript, ie.:

timers = await import('timers-obj')

timer = timers.interval 1000, ->
  console.log 'Time is ticking'

Requirements

This is an ESM module that requires ES2021 and Node >= 16.

Installation

npm install timers-obj

Additionally for Typescript:

npm install -D @types/node

Usage

import * as timers from "timers-obj"

or:

import {Immediate, immediate, Interval, interval, Timeout, timeout} from "timers-obj"

immediate

Creates timer with immediate callback.

const timer = timers.immediate(cb, [...args])

interval

Creates timer with callback run in intervals.

const timer = timers.interval(delay, cb, [...args])

timeout

Creates timer with callback run after timeout.

const timer = timers.timeout(delay, cb, [...args])

close

Closes timer.

timer = timer.close()

The method returns this object.

hasRef

Returns true if the object will keep the Node.js event loop active.

const hasRef = timer.hasRef()

ref

Requests that the Node.js event loop does not exit so long as the Timeout is active.

timer = timer.ref()

The method returns this object.

unref

Requests that the Node.js event loop exits even if the Timeout is active.

timer = timer.unref()

The method returns this object.

refresh

Sets the timer's start time to the current time. Only for interval and timeout timers.

timer = timer.refresh()

The method returns this object.

[Symbol.dispose]

Clears the timer at the end of a scope.

using timer = timers.immediate(cb, [...args])
using timer = timers.interval(delay, cb, [...args])
using timer = timers.timeout(delay, cb, [...args])

License

Copyright (c) 2016-2024 Piotr Roszatycki piotr.roszatycki@gmail.com

MIT

Readme

Keywords

Package Sidebar

Install

npm i timers-obj

Weekly Downloads

44

Version

3.1.0

License

MIT

Unpacked Size

13.2 kB

Total Files

7

Last publish

Collaborators

  • dex4er