Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
@jcoreio/async-throttle
Advanced tools
throttle async and promise-returning functions. Other packages don't do it right.
Throttle async and promise returning functions. Unlike similarly named packages, this behaves much like an async version of
lodash.throttle
:
.cancel()
and .flush()
lodash.throttle
leading
and trailing
optionsgetNextArgs
option allows you to customize how the arguments for the next invocation are determinednpm install --save @jcoreio/async-throttle
const throttle = require('@jcoreio/async-throttle')
function throttle<Args: Array<any>, Value>(
func: (...args: Args) => Promise<Value>,
wait: ?number,
options?: {
getNextArgs?: (current: Args, next: Args) => Args
}
): (...args: Args) => Promise<Value>;
Creates a throttled function that only invokes func
at most once per every wait
milliseconds, and also waits for the
Promise
returned by the previous invocation to finish (it won't invoke func
in parallel).
The promise returned by the throttled function will track the promise returned by the next invocation of func
.
If wait
is falsy, it is treated as 0, which causes func
to be invoked on the next tick afte the previous invocation
finishes.
By default, func
is called with the most recent arguments to the throttled function. You can change this with the
getNextArgs
option -- for example, if you want to invoke func
with the minimum of all arguments since the last
invocation:
const throttledFn = throttle(foo, 10, {
getNextArgs: ([a], [b]) => [Math.min(a, b)],
})
throttledFn(2)
throttledFn(1)
throttledFn(3)
// foo will be called with 1
// time passes...
throttledFn(4)
throttledFn(6)
throttledFn(5)
// foo will be called with 4
throttledFn.cancel()
Cancels the pending invocation, if any. All Promise
s tracking the pending invocation will be
rejected with a CancelationError
(const {CancelationError} = require('@jcoreio/async-throttle')
).
However, if an invocation is currently running, all Promise
s tracking the current invocation will be fulfilled as usual.
Returns a Promise
that will resolve once the current invocation (if any) is finished.
throttledFn.flush()
Cancels the wait
before the pending invocation, if any. The pending invocation will still wait for the current invocation (if any)
to finish, but will begin immediately afterward, even if wait
has not elapsed.
Returns a Promise
that will resolve once the current invocation (if any) is finished.
FAQs
throttle async and promise-returning functions. Other packages don't do it right.
We found that @jcoreio/async-throttle demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.