🧸 A tiny type-safe debounce utility for modern JavaScript and TypeScript. Lightweight. Dependency-free. Works in Node and the browser, has a very simple API surface to work with.
npm install --save micro-bounce-js- Debounces rapid function calls and preserves
thiscontext - Fully type-safe (TypeScript-first)
- Works in Node & browser environments
- Zero dependencies
- Minimal Footprint
- Unit-Tested using Jest with fake timers to verify
/* node modules */
import { microBounce } from 'micro-bounce-js';
/* your fn */
function aSimpleLogger(message: string): void {
console.log(messsage);
}
/* create the debounce instance */
const dLogger = microBounce(aSimpleLogger, 500);
dLogger('Hey there. How you doing?');
// the logger function will be executed after 500 milliseconds
// the log will output "Hey there. How you doing?"PASS src/micro-bounce/test/index.test.ts
microBounce
✓ throws when delay is negative
✓ throws when delay is not finite
✓ calls function after delay
✓ debounces rapid calls and uses latest arguments
✓ preserves this context
✓ works with zero delay
✓ throws when delay is Infinity
✓ separate instances do not share debounce state
Test Suites: 1 passed, 1 total
Tests: 8 passed, 8 total
Snapshots: 0 total
----------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 100 | 100 |
index.ts | 100 | 100 | 100 | 100 |
----------|---------|----------|---------|---------|-------------------
Contributions, suggestions, and improvements are welcome.
Feel free to open issues or pull requests.
Like this project? Support it with a github star, it would mean a lot to me! Cheers and Happy Coding.
