Skip to content

Releases: github/mini-throttle

v2.1.1

27 Feb 15:57
514b201
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.1.0...v2.1.1

v2.1.0

23 Feb 15:49
Compare
Choose a tag to compare

This updates the package.json to include sideEffects: false which improves tree-shaking in bundlers like WebPack and Rollup. Thanks @stof (#11)

It also updates the TypeScript types for decorator functions.

v2.0.1

23 Feb 15:22
Compare
Choose a tag to compare

Corrects repository field in package.json

v2.0.0

23 Feb 15:21
Compare
Choose a tag to compare

This release migrates the codebase to TypeScript, dropping Babel in the process.

The throttle and debounce functions can now pass a receiver (or "this") as an argument.

This also adds new TypeScript decorator support, decorators can be used by importing @github/mini-throttle/decorators

v1.0.7

23 Feb 15:19
v1.0.7
Compare
Choose a tag to compare

Updated some code comments

v1.0.6

23 Feb 15:18
v1.0.6
Compare
Choose a tag to compare

Updated devdependencies.

v1.0.5

06 Aug 14:38
1b9825c
Compare
Choose a tag to compare
  • Merge pull request #5 from github/publish-to-gpr-as-well 9c42e29
  • Merge branch 'master' into publish-to-gpr-as-well d181bbd
  • publish to GPR as a postpublish step b56e8c4

v1.0.4...v1.0.5

1.0.5

06 Aug 14:37
9c42e29
Compare
Choose a tag to compare

mini-throttle

This is a package which provides throttle and debounce functions, with both
flow and TypeScript declarations, and a minimal code footprint (less than 60
lines, less than 350 bytes minified+gzipped)

throttling, debouncing, and everything inbetween

type ThrottleOptions = {
  start?: boolean, // fire immediately on the first call
  middle?: boolean, // if true, fire as soon as `wait` has passed
  once?: boolean, // cancel after the first successful call
}
function throttle<T>(
  callback: (...args: T[]) => any,
  wait: number,
  opts?: ThrottleOptions
): (...args: T[]) => void

function debounce<T>(
  callback: (...args: T[]) => any,
  wait: number,
  opts?: ThrottleOptions
): (...args: T[]) => void

This package comes with two functions; throttle and debounce.

Both of these functions offer the exact same signature, because they're both
the same function - just with different opts defaults:

  • throttle opts default to { start: true, middle: true, once: false }.
  • debounce opts default to { start: false, middle: false, once: false }.

Each of the options changes when callback gets called. The best way to
illustrate this is with a marble diagram.

for (let i = 1; i <= 10; ++i) {
  fn(i)
  await delay(50)
}
await delay(100)
| fn()                                         | 1 2 3 4 5 6 7 8 9 10 |
| throttle(fn, 100)                            | 1 2   4   6   8   10 |
| throttle(fn, 100, {start: false})            |   2   4   6   8   10 |
| throttle(fn, 100, {middle: false})           | 1                 10 |
| throttle(fn, 100, {once: true})              | 1                    |
| throttle(fn, 100, {once: true, start: false})|   2                  |
| debounce(fn, 100)                            |                   10 |

v1.0.4

06 Aug 13:02
56819d0
Compare
Choose a tag to compare
  • Merge pull request #6 from github/dependabot/npm_and_yarn/lodash-4.17.15 78c6f96
  • chore(deps): bump lodash from 4.17.11 to 4.17.15 751a312
  • Merge pull request #4 from 38elements/patch-1 d48a9fc
  • chore: fix typo 2411142

v1.0.3...v1.0.4