npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pragma-throttle

v1.1.1

Published

Module for cycle throttling with sync and async methods. Has linear, random and manual delay.

Downloads

8

Readme

PragmaThrottle

Module for cycle throttling with sync and async methods. Has linear increase or decrease, random increase and manual increase delay.

Used and tested on

Navigation

Install

npm i --save pragma-throttle

Initialization

const Trottler = require('pragma-throttle');
const throttleDelays = {
    delay: 1000,
    delayDefault: 1000,
    delayStep: 100,
    delayMax: 10000
};
const Throttle = new Throttler(throttleDelays);

Options

Delay options:

{
    "delay": 1000,
    "delayDefault": 1000,
    "delayStep": 100,
    "delayMax": 10000
}

delay - number - The delay between the iterations of the throttled loop.

delayDefault - number - The default delay between the iterations of the throttled loop.

delayStep - number - Increase/decrease the delay at each iteration to the value.

delayMax - number - The maximum delay.

Throttled objects options:

{
    "obj": {},
    "execute": "Method",
    "args": []
}

obj - object| - The object that owns the method specified in execute.

execute - function|string - Object obj method name or a simple function.

args - array - Arguments for method or function specified in execute.

Methods

throttleSync(executeInfo[, delay])

executeInfo - null|Object - Object with throttled options.

delay - Number - Start delay time in ms.

Return FALSE if error on throttling initialize.

Start synchronous throttling. If execute synchronous, delay begin countdown after execute workflow is finished. If execute asynchronous, delay begin countdown after calling execute.

let throttleObj = {
    obj: Class,
    execute: 'SyncClassMethod'
};

Throttle.throttleSync(throttleObj, 1000);

throttleAsync(executeInfo[, delay])

executeInfo - null|Object - Object with throttled options.

delay - Number - Start delay time in ms.

Return FALSE if error on throttling initialize.

Start asynchronous throttling.

Delay begin countdown after execute workflow is finished.

let throttleObj = {
    obj: Class,
    execute: 'AsyncClassMethod'
};

Throttle.throttleAsync(throttleObj, 1000);

setExecute(executeInfo)

executeInfo - null|Object - Object with throttled options.

Return TRUE if execute specified, FALSE if not placed.

Check and specify execute and his args.

setExecuteArguments(...args)

args - array - Spread arguments list.

Return always TRUE

Update exists args for execute on throttling

delayReset()

Return always TRUE

Reset throttle delaying to default value. Put it into throttled function or method.

delayManual(delay)

delay - Number - Time in ms for increasing

Return always TRUE

Manually increase throttling delay. Ignore maximum delay value. Put it into throttled function or method.

delayIncrease()

Return always TRUE

Automatically increase delay using delayStep. It can not be increased more than delayMax. Put it into throttled function or method.

delayDecrease()

Return always TRUE

Automatically decrease delay using delayStep. It can not be decreased more than delayDefault. Put it into throttled function or method.

delayRandom()

Return always TRUE

Automatically random delay increase in the time between delayDefault and delayMax. Put it into throttled function or method.

stop()

Stop throttling and clear timeouts.

reset()

Stop throttling, clear timeouts and reset delay settings to defaults.

License

No WTFPL License image :(