Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/node_modules/pusher-js/src/core/utils/timers/ |
import TimedCallback from './timed_callback';
import { Delay, Scheduler, Canceller } from './scheduling';
abstract class Timer {
protected clear: Canceller;
protected timer: number | void;
constructor(
set: Scheduler,
clear: Canceller,
delay: Delay,
callback: TimedCallback
) {
this.clear = clear;
this.timer = set(() => {
if (this.timer) {
this.timer = callback(this.timer);
}
}, delay);
}
/** Returns whether the timer is still running.
*
* @return {Boolean}
*/
isRunning(): boolean {
return this.timer !== null;
}
/** Aborts a timer when it's running. */
ensureAborted() {
if (this.timer) {
this.clear(this.timer);
this.timer = null;
}
}
}
export default Timer;