/set-long-timeout

setTimeout and setInterval above 2147483647ms delay

Primary LanguageJavaScriptOtherNOASSERTION

set-long-timeout

setTimeout and setInterval above 2147483647ms delay

NPM Version semantic-release Coverage Status Dependencies status Dev-dependencies status Commitizen friendly

Why?

The native setTimeout and setInterval are limited to a delay of 2147483647ms. This package allows you to set a timeout up to Number.MAX_SAFE_INTEGER.

Install

npm install set-long-timeout

Usage

const {
  setLongTimeout,
  setLongInterval,

  clearLongTimeout,
  clearLongInterval
} = require('set-long-timeout')();

// will call function after 30 days
const timeoutId = setLongTimeout(() => { ... }, 2592000000);
// stop timeout with ID returned
clearLongTimeout(timeoutId);

// will call function every 30 days
const intervalId = setLongInterval(() => { ... }, 2592000000);
// stop interval with ID returned
clearLongInterval(intervalId);

API

const longTimeout = require('set-long-timeout');

longTimeout is a function that takes one argument: the maximum setInterval delay, which defaults to 2147483647.
It returns 4 functions:

setLongTimeout(func, delay[, ...params])

Will call func after delay milliseconds with the passed params if provided.
Returns an ID that can be used to stop the timer.

setLongInterval(func, delay[, ...params])

Will call func every delay milliseconds with the passed params if provided.
Returns an ID that can be used to stop the timer.

clearLongTimeout(timerID)

Will stop a timer using the returned timer ID.
(Also works with setLongInterval IDs)

clearLongInterval(timerID)

Will stop a timer using the returned timer ID.
(Also works with setLongTimeout IDs)

Contributing

See CONTRIBUTING.md.

License

This software is licensed under the MIT Licence. See LICENSE.