π§Έ 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.
- This package is open source and intended to provide reusable utilities for application development. It does not collect, store, transmit, sell, or share user data, and it does not include analytics, tracking, telemetry, cookies, local storage usage, backend services, or project-owned data collection mechanisms.
- For more details, including vulnerability reporting guidance and consumer security recommendations, please see the Security Policy.
Like this project? Support it with a github star, it would mean a lot to me! Cheers and Happy Coding.
