
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
Async control flow: retry with backoff, timeout, concurrency limit, sleep, debounce, throttle. Zero deps.
Async control-flow toolkit — sleep, deferred, timeout, retry with backoff, concurrency limit, debounce, throttle. Zero dependencies, ESM + CJS + TypeScript types.
npm install controlly
import {
sleep, deferred, withTimeout, retry, pLimit, debounce, throttle,
} from "controlly";
await sleep(200);
// Retry with exponential backoff
const data = await retry(() => fetch("/api").then((r) => r.json()), {
retries: 3,
minDelay: 100,
factor: 2,
onRetry: (err, attempt) => console.warn(`retry #${attempt}`, err),
});
// Timeout any promise
await withTimeout(slowTask(), 5000, "slowTask took too long");
// Limit concurrency
const limit = pLimit(2);
await Promise.all(urls.map((u) => limit(() => fetch(u))));
// Externally-resolvable promise
const d = deferred<number>();
setTimeout(() => d.resolve(42), 10);
await d.promise; // 42
const onScroll = throttle(() => render(), 100);
const onType = debounce((q: string) => search(q), 300);
| Fonction | Description |
|---|---|
sleep(ms, signal?) | Promise résolue après ms (annulable via AbortSignal) |
deferred<T>() | { promise, resolve, reject } |
withTimeout(promise, ms, msg?) | Rejette TimeoutError au-delà de ms |
retry(fn, opts?) | Backoff exponentiel : retries, minDelay, factor, maxDelay, onRetry, shouldRetry, signal |
pLimit(n) | Limiteur de concurrence (.active, .pending) |
debounce(fn, ms) | + .cancel() / .flush() |
throttle(fn, ms) | Bord montant + trailing |
Tout est typé strictement. retry/sleep respectent AbortSignal.
MIT © KIPDEV
FAQs
Async control flow: retry with backoff, timeout, concurrency limit, sleep, debounce, throttle. Zero deps.
We found that controlly 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.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.