|
Download backend/node_modules/perfect-debounce/README.md from blackmistcode/polysignal_hackaton: direct link, hf CLI and curl.
- Browser
- Download file 2.6 kB
-
https://huggingface.co/blackmistcode/polysignal_hackaton/resolve/main/backend/node_modules/perfect-debounce/README.md
- Command line
-
hf download hf://blackmistcode/polysignal_hackaton/backend/node_modules/perfect-debounce/README.md
-
curl -L -o README.md https://huggingface.co/blackmistcode/polysignal_hackaton/resolve/main/backend/node_modules/perfect-debounce/README.md
2.6 kB
| # perfect-debounce | |
| [![npm version][npm-version-src]][npm-version-href] | |
| [![npm downloads][npm-downloads-src]][npm-downloads-href] | |
| [![Github Actions][github-actions-src]][github-actions-href] | |
| [![Codecov][codecov-src]][codecov-href] | |
| > An improved debounce function with Promise support. | |
| - Well tested debounce implementation | |
| - Native Promise support | |
| - Avoid duplicate calls while promise is being resolved | |
| - Configurable `trailing` and `leading` behavior | |
| ## Usage | |
| Install package: | |
| ```sh | |
| # npm | |
| npm install perfect-debounce | |
| # yarn | |
| yarn add perfect-debounce | |
| # pnpm | |
| pnpm add perfect-debounce | |
| ``` | |
| Import: | |
| ```js | |
| // ESM | |
| import { debounce } from 'perfect-debounce' | |
| // CommonJS | |
| const { debounce } = require('perfect-debounce') | |
| ``` | |
| Debounce function: | |
| ```js | |
| const debounced = debounce(async () => { | |
| // Some heavy stuff | |
| }, 25) | |
| ``` | |
| When calling `debounced`, it will wait at least for `25ms` as configured before actually calling our function. This helps to avoid multiple calls. | |
| To avoid initial wait, we can set `leading: true` option. It will cause function to be immediately called if there is no other call: | |
| ```js | |
| const debounced = debounce(async () => { | |
| // Some heavy stuff | |
| }, 25, { leading: true }) | |
| ``` | |
| If executing async function takes longer than debounce value, duplicate calls will be still prevented a last call will happen. To disable this behavior, we can set `trailing: false` option: | |
| ```js | |
| const debounced = debounce(async () => { | |
| // Some heavy stuff | |
| }, 25, { trailing: false }) | |
| ``` | |
| ## 💻 Development | |
| - Clone this repository | |
| - Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable` (use `npm i -g corepack` for Node.js < 16.10) | |
| - Install dependencies using `pnpm install` | |
| - Run interactive tests using `pnpm dev` | |
| ## License | |
| Made with 💛 | |
| Based on [sindresorhus/p-debounce](https://github.com/sindresorhus/p-debounce). | |
| Published under [MIT License](./LICENSE). | |
| <!-- Badges --> | |
| [npm-version-src]: https://img.shields.io/npm/v/perfect-debounce?style=flat-square | |
| [npm-version-href]: https://npmjs.com/package/perfect-debounce | |
| [npm-downloads-src]: https://img.shields.io/npm/dm/perfect-debounce?style=flat-square | |
| [npm-downloads-href]: https://npmjs.com/package/perfect-debounce | |
| [github-actions-src]: https://img.shields.io/github/workflow/status/unjs/perfect-debounce/ci/main?style=flat-square | |
| [github-actions-href]: https://github.com/unjs/perfect-debounce/actions?query=workflow%3Aci | |
| [codecov-src]: https://img.shields.io/codecov/c/gh/unjs/perfect-debounce/main?style=flat-square | |
| [codecov-href]: https://codecov.io/gh/unjs/perfect-debounce | |