Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
A tiny (139B to 204B) utility to regulate the execution rate of your functions
A tiny (139B to 204B) utility to regulate the execution rate of your functions
$ npm install --save throttles
There are two "versions" of throttles
, each of which different purpose:
Size (gzip): 139 bytes
Availability: UMD, CommonJS, ES Module
This is the primary/default mode, meant for managing single queues.
This is the opt-in mode, meant for managing a low priority and a high priority queue system.
Items within the "high priority" queue are handled before the low/general queue. The limit
is still enforced.
Selecting a Mode
// import via npm module
import throttles from 'throttles';
import throttles from 'throttles/priority';
// import via unpkg
import throttles from 'https://unpkg.com/throttles/index.mjs';
import throttles from 'https://unpkg.com/throttles/priority/index.mjs';
Example Usage
import throttles from 'throttles';
const API = 'https://pokeapi.co/api/v2/pokemon';
const getPokemon = id => fetch(`${API}/${id}`).then(r => r.json());
// Limit concurrency to 3
const [toAdd, isDone] = throttles(3);
// What we'll fetch
const pokemon = ['bulbasaur', 'ivysaur', 'venusaur', 'charmander', 'charmeleon', 'charizard', ...];
// Loop list, enqueuing each Pokemon
// ~> Always keeps 3 requests active at a time
// ~> When complete, marks itself complete via `isDone()`
pokemon.forEach(name => {
toAdd(() => {
getPokemon(name).then(isDone);
});
});
// Or, use `Array.map` to wrap our `getPokemon` function
// ~> This still fetches Pokemon 3 at once
pokemon.map(x => () => getPokemon(x).then(isDone)).forEach(toAdd);
Returns: Array
Returns a tuple of [toAdd
, isDone
] actions.
Type: Number
Default: 1
The throttle's concurrency limit. By default, runs your functions one at a time.
Type: Function
Returns: void
Add a function to the throttle's queue.
Important: In "priority" mode, identical functions are ignored.
Type: Function
The function to add to the queue.
Type: Boolean
Default: false
If the fn
should be added to the "high priority" queue.
Important: Only available in "priority" mode!
Type: Function
Returns: void
Signifies that a function has been completed.
Important: Failure to call this will prevent
throttles
from continuing to the next item!
MIT © Luke Edwards
FAQs
A tiny (139B to 204B) utility to regulate the execution rate of your functions
We found that throttles demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.