Skip to content

NPM-Workbench/micro-bounce-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

bounce-banner-2 npm downloads license Security Policy npm_provenance NPM Unpacked Size

Micro Bounce JS

🧸 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.

πŸ“¦ Installation

npm install --save micro-bounce-js

🎲 Features

  1. Debounces rapid function calls and preserves this context
  2. Fully type-safe (TypeScript-first)
  3. Works in Node & browser environments
  4. Zero dependencies
  5. Minimal Footprint
  6. Unit-Tested using Jest with fake timers to verify

πŸ’» Usage

/* 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?"

πŸ“— Test Coverage

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 |
----------|---------|----------|---------|---------|-------------------

πŸ“˜ Contributing

Contributions, suggestions, and improvements are welcome.
Feel free to open issues or pull requests.

πŸ”’ Security & Privacy

  1. 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.
  2. For more details, including vulnerability reporting guidance and consumer security recommendations, please see the Security Policy.

❀️ Support

Like this project? Support it with a github star, it would mean a lot to me! Cheers and Happy Coding.

About

🧸 A tiny, type-safe debounce utility for modern JavaScript and TypeScript. Lightweight. Dependency-free. Works in Node and the browser.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors