lite-debounce-js
v1.1.0
Published
A lightweight, dependency-free debounce utility for JavaScript functions with support for leading and trailing edge execution.
Maintainers
Readme
LiteDebounce
A lightweight, dependency-free debounce utility for JavaScript functions. Supports both leading and trailing edge execution. Perfect for input handlers, resize events, and performance optimization in modern web apps.
Features
- Zero dependencies
- ESM build
- Leading/trailing edge debounce
- Context (
this) support - Tiny & fast
Installation
npm install lite-debounce-jsOr simply copy the file from dist/ into your project.
Usage
Import
// ESM (from npm)
import { LiteDebounce } from 'lite-debounce-js';
// Or import from local build:
import { LiteDebounce } from './dist/lite-debounce.min.js';Basic trailing debounce (default)
const debouncer = new LiteDebounce(() => {
console.log('Debounced!');
}, 300); // 300ms delay
window.addEventListener('resize', debouncer.fnDebounced);Leading debounce
const debouncer = new LiteDebounce(() => {
console.log('Leading call!');
}, 500, { leading: true });
const debouncedFn = debouncer.fnDebounced;
debouncedFn(); // will be called immediatelyWith arguments and context
const obj = {
value: 42,
log() {
console.log(this.value);
}
};
const debouncer = new LiteDebounce(obj.log, 200);
const debouncedFn = debouncer.fnDebounced.bind(obj);
debouncedFn(); // logs: 42API
new LiteDebounce(fn, delay = 300, options = {})
fn— function to debouncedelay— debounce delay in ms (default: 300)options.leading— iftrue, call on the leading edge (default:false)
Instance property:
.fnDebounced— debounced function, use it in event listeners or anywhere
Demo
Open demo/index.html in your browser (with a local server) or run the dev server:
npm run devTesting
npm testTests are written with Vitest.
License
MIT
