
Security News
Free Certified Patch for Critical Rails Active Storage Vulnerability
Socket has released a free Certified Patch for a critical Rails Active Storage vulnerability, giving developers time to upgrade to a secure Rails version.
@gibme/timer
Advanced tools
A simple, event-driven timer library for Node.js built on EventEmitter. Provides a base Timer for interval-based ticks, plus SyncTimer and AsyncTimer helpers that execute functions on each tick and emit typed results.
https://gibme-npm.github.io/timer/
npm install @gibme/timer
or
yarn add @gibme/timer
import Timer from '@gibme/timer';
const timer = new Timer(60_000);
timer.on('tick', () => {
// runs every 60 seconds
});
timer.start();
const timer = new Timer(5_000, true, 'hello', 42);
timer.on('tick', (greeting: string, value: number) => {
console.log(greeting, value); // "hello" 42
});
Wraps a synchronous function, executing it on each interval and emitting the result via the data event.
import { SyncTimer } from '@gibme/timer';
const timer = new SyncTimer(() => Math.random(), 1_000, true);
timer.on('data', (value, timestamp, interval) => {
console.log(`Got ${value} at ${timestamp}s (every ${interval}ms)`);
});
Wraps an asynchronous function, awaiting it on each interval and emitting the resolved value.
import { AsyncTimer } from '@gibme/timer';
const timer = new AsyncTimer(async () => {
const res = await fetch('https://api.example.com/data');
return res.json();
}, 30_000, true);
timer.on('data', (payload, timestamp, interval) => {
console.log(payload);
});
timer.on('error', (error) => {
console.error('Request failed:', error);
});
A simple async sleep utility.
import { sleep } from '@gibme/timer';
await sleep(2_000); // wait 2 seconds
new Timer(interval: number, autoStart?: boolean, ...args: any[])
| Parameter | Type | Default | Description |
|---|---|---|---|
interval | number | Milliseconds between ticks | |
autoStart | boolean | false | Start immediately on construction |
...args | any[] | Arguments forwarded to every tick event |
| Property | Type | Description |
|---|---|---|
interval | number | The tick interval in milliseconds |
paused | boolean | Whether the timer is paused |
destroyed | boolean | Whether the timer has been destroyed |
| Method | Returns | Description |
|---|---|---|
start() | void | Start the timer |
stop() | void | Stop the timer |
toggle() | boolean | Toggle on/off; returns true if now running |
tick(...args) | void | Force an immediate tick with optional arguments |
destroy() | void | Permanently stop and clean up the timer |
| Event | Listener Signature | Description |
|---|---|---|
tick | (...args: any[]) => void | Emitted on each interval tick |
start | () => void | Emitted when the timer starts |
stop | () => void | Emitted when the timer stops |
error | (error: Error) => void | Emitted on errors |
Extends Timer. Executes a synchronous function on each tick.
new SyncTimer(func: () => Type, interval: number, autoStart?: boolean)
Emits a data event after each execution:
timer.on('data', (result: Type, timestamp: number, interval: number) => void)
Extends Timer. Executes an asynchronous function on each tick.
new AsyncTimer(func: () => Promise<Type>, interval: number, autoStart?: boolean)
Emits a data event after each execution resolves:
timer.on('data', (result: Type, timestamp: number, interval: number) => void)
Errors thrown or rejected by the function are emitted as error events.
MIT
FAQs
A simple timer/metronome
The npm package @gibme/timer receives a total of 65 weekly downloads. As such, @gibme/timer popularity was classified as not popular.
We found that @gibme/timer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Socket has released a free Certified Patch for a critical Rails Active Storage vulnerability, giving developers time to upgrade to a secure Rails version.

Security News
/Threat Research
A malicious Ruby gem runs a credential-stealing worm during installation, poisons AI coding tools, and can wipe files when a stolen GitHub token is revoked.

Security News
GitHub is tightening GitHub Actions security with new restrictions on privileged pull request workflows. Here's what changes and how maintainers are affected.