@eklingen/watch-debounced
Version:
Simple debounced file watcher. Uses Chokidar.
82 lines (53 loc) • 2.21 kB
Markdown
Simple debounced file watcher. Uses Chokidar. This does not queue events, it simply rate limits them.
> *NOTE:* No tests have been written yet!
`yarn install`. Or `npm install`. Or just copy the files to your own project.
Specify either a folder or a glob. You can specify options or an empty object. It returns the `chokidar` instance, so you can close it at a later time.
```javascript
const watch = require('@eklingen/watch-debounced')
const watcher = watch('folder-or-glob/**/*', {}, (event, path) => yourCallback(event, path))
...
watcher.close()
```
The callback `yourCallback` is called with the following arguments:
- `event` string (example: `'change'`)
- all events
- `path` string (example: `/Users/batman/my/secret/stash.zip`)
- all events, except `ready` and `error`
- `stats` or `details` string (optional)
- only `change` or `raw` events
- `error` object
- only `error` event
The `raw` event is internal to `chokidar` and may change at any moment.
There are a few options.
Set a delay in millisecond before the timeout resets. Default is `250`.
```javascript
watch('my-stuff/', {
delay: 250
}, () => yourCallback())
```
The events to watch for. Default is `[ 'add', 'change', 'unlink' ]`. For more events, see the ["chokidar"](https://www.npmjs.com/package/chokidar) documentation.
```javascript
watch('my-stuff/', {
events: [ 'add', 'change', 'unlink' ]
}, () => yourCallback())
```
If `fireFirst` is set, the callback is triggered separately before the debounce. Default is `false`. If `fireLast` is set, the callback is triggered after the debounce. Default is `true`. Enabling both is possible, disabling both is useless.
```javascript
watch('my-stuff/', {
fireFirst: false,
fireLast: true
}, () => yourCallback())
```
This object is passed verbatim to `chokidar`. For all options, see the ["chokidar"](https://www.npmjs.com/package/chokidar) documentation.
This package requires ["chokidar"](https://www.npmjs.com/package/chokidar).
---
Copyright (c) 2019 Elco Klingen. MIT License.