0.1.1 • Published 7 years ago

debounce-by-key v0.1.1

Weekly downloads
50
License
ISC
Repository
github
Last release
7 years ago

debounce-by-key

debounce-by-key debounce-by-key

useful for employing a group of functions within a single debounce scope and/or employing a single function across a group of debounce scopes

Installation

npm install debounce-by-key --save

Usage

This module provides a single function that takes a single options arg (optional) and returns a Promise that resolves if the debounce state is non-blocking, and rejects if its blocking.

debounce(options)

  • options {Object}
  • return: Promise

options

  • key the string identifier of the debounce scope. Defaults to ''
  • duration the time in milliseconds of the blocking state. Defaults to 1000

Example

const debounce = require('debounce-by-key')

const sayHi = ()=>{console.log('hello world')}


/* no-args */
debounce().then(sayHi)
debounce().then(sayHi) //⛔ will not run


/* multiple functions, single scope */
debounce({key:'say hi'}).then(() => console.log('hola mundo') )
debounce({key:'say hi'}).then(() => console.log('hello world') ) //⛔ will not run
debounce({key:'say hi'}).then(() => console.log('bonjour monde') ) //⛔ will not run


/* single function, mutliple scopes */
debounce({key:'say hi 1'}).then(sayHi)
debounce({key:'say hi 2'}).then(sayHi) //✅ will run


/* duration arg */
const d = () => debounce({key:'say hi 3', duration:1000}).then(sayHi)

d()
setTimeout(d,500) //⛔ will not run
setTimeout(d,1500) //✅ will run

Tests

npm install
npm test

Dependencies

None

Dev Dependencies

  • tap: A Test-Anything-Protocol library

License

ISC