@yeger/debounce
Version:
A tiny TypeScript library for debouncing functions.
83 lines (61 loc) • 2.08 kB
Markdown
<h1 align="center">@yeger/debounce</h1>
<p align="center">
A tiny TypeScript library for debouncing functions.
</p>
<p align="center">
<a href="https://github.com/DerYeger/yeger/actions/workflows/ci.yml">
<img alt="CI" src="https://img.shields.io/github/actions/workflow/status/DerYeger/yeger/ci.yml?branch=main&label=ci&logo=github&color=#4DC71F">
</a>
<a href="https://www.npmjs.com/package/@yeger/debounce">
<img alt="NPM" src="https://img.shields.io/npm/v/@yeger/debounce?logo=npm">
</a>
<a href="https://app.codecov.io/gh/DerYeger/yeger/tree/main/packages/debounce">
<img alt="Coverage" src="https://codecov.io/gh/DerYeger/yeger/branch/main/graph/badge.svg?token=DjcvNlg4hd&flag=debounce">
</a>
<a href="https://opensource.org/licenses/MIT">
<img alt="MIT" src="https://img.shields.io/npm/l/@yeger/debounce?color=%234DC71F">
</a>
<a href="https://bundlephobia.com/package/@yeger/debounce">
<img alt="npm bundle size" src="https://img.shields.io/bundlephobia/minzip/@yeger/debounce">
</a>
</p>
- ✨ **Debounce** any callback. Usefull for preventing flickering when using `ResizeObserver`.
- ⏱️ Optional **delays** for callback invocations.
- 🐭 **Tiny**.
```bash
$ yarn add @yeger/debounce
$ npm install @yeger/debounce
```
```typescript
import { debounce } from '@yeger/debounce'
// Take an existing function
function resize(): void {
// ...
}
// Debounce it using the library
const debouncedResize = debounce(() => resize())
// And use the debounced function
const resizeObserver = new ResizeObserver(debouncedResize)
```
Optionally, a delay for the invocation of the debounced method can be passed.
```typescript
const debouncedResize = debounce(() => resize(), 200)
```
```bash
$ pnpm install
$ pnpm build
$ pnpm lint
$ pnpm test
```
[](https://github.com/DerYeger/yeger/blob/main/packages/debounce/LICENSE) - Copyright © Jan Müller