Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@splunkdlt/async-tasks
Advanced tools
Generic helpers around asynchronous tasks, parallel execution, retrying and aborting them.
Generic helpers around asynchronous tasks, parallel execution, retrying and aborting them.
The library provides a helper function retry()
that allows to execute asynchronous tasks with retries when the task fails.
Example:
const result = await retry(performAsyncTask, {
attempts: 10,
waitBetween: exponentialBackoff({ min: 10, max: 500 }),
});
A helper function called parallel()
can help execute a list of asynchronous tasks in parallel allowing only a certain number of tasks to run at the same time. This is conceptually similar to an execution pool, allowing for constraining the resources used be a set of tasks.
Example:
const TASKS = [...Array(10)].map((_, i) => async () => {
const taskNumber = i + 1;
console.log('Starting task', taskNumber);
await sleep(100 + Math.floor(Math.random() * 1000));
console.log('Completed task', taskNumber);
return taskNumber;
});
const results = await parallel(TASKS, { maxConcurrent: 3 });
console.log(results); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
Another aspect of this library deals with aborting the execution of asynchronous tasks. An AbortHandle
is the primitive this libaray provides to make it happen - it tracks the aborted-state and allows to register callbacks when an abort is triggered. An abortHandle
can also be passed to both parallel()
and retry()
.
Example:
const abortHandle = new AbortHandle();
setTimeout(() => abortHandle.abort(), 100);
const start = Date.now();
try {
await abortHandle.race(sleep(1000));
} catch (e) {
if (abortHandle.aborted) {
console.log('Aborted!');
}
}
console.log('Complete after', Date.now() - start, 'ms');
FAQs
Generic helpers around asynchronous tasks, parallel execution, retrying and aborting them.
The npm package @splunkdlt/async-tasks receives a total of 8 weekly downloads. As such, @splunkdlt/async-tasks popularity was classified as not popular.
We found that @splunkdlt/async-tasks demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.