summaryrefslogtreecommitdiff
path: root/includes/external/chvfs/node_modules/node-watch/README.md
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-04-02 23:03:02 +0200
committerRaindropsSys <contact@minteck.org>2023-04-02 23:03:02 +0200
commit02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b (patch)
tree6d1dec61008998aadc6b69f7e750712794d99324 /includes/external/chvfs/node_modules/node-watch/README.md
parentf559308a1b42a9036135d764374a8c007b7d70a9 (diff)
downloadpluralconnect-02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b.tar.gz
pluralconnect-02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b.tar.bz2
pluralconnect-02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b.zip
Updated 35 files, added 11 files and deleted includes/components/search.inc (automated)
Diffstat (limited to 'includes/external/chvfs/node_modules/node-watch/README.md')
-rw-r--r--includes/external/chvfs/node_modules/node-watch/README.md233
1 files changed, 233 insertions, 0 deletions
diff --git a/includes/external/chvfs/node_modules/node-watch/README.md b/includes/external/chvfs/node_modules/node-watch/README.md
new file mode 100644
index 0000000..c0f8bd2
--- /dev/null
+++ b/includes/external/chvfs/node_modules/node-watch/README.md
@@ -0,0 +1,233 @@
+# node-watch [![Status](https://github.com/yuanchuan/node-watch/actions/workflows/ci.yml/badge.svg)](https://github.com/yuanchuan/node-watch/actions/workflows/ci.yml/badge.svg)
+
+A wrapper and enhancements for [fs.watch](http://nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener).
+
+[![NPM](https://nodei.co/npm/node-watch.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/node-watch.png/)
+
+
+## Installation
+
+```bash
+npm install node-watch
+```
+
+## Example
+
+```js
+var watch = require('node-watch');
+
+watch('file_or_dir', { recursive: true }, function(evt, name) {
+ console.log('%s changed.', name);
+});
+```
+
+Now it's fast to watch **deep** directories on macOS and Windows, since the `recursive` option is natively supported except on Linux.
+
+```js
+// watch the whole disk
+watch('/', { recursive: true }, console.log);
+```
+
+
+## Why?
+
+* Some editors will generate temporary files which will cause the callback function to be triggered multiple times.
+* The callback function will only be triggered once on watching a single file.
+* <del>Missing an option to watch a directory recursively.</del>
+* Recursive watch is not supported on Linux or in older versions of nodejs.
+* Keep it simple, stupid.
+
+
+## Options
+
+The usage and options of `node-watch` are compatible with [fs.watch](https://nodejs.org/dist/latest-v7.x/docs/api/fs.html#fs_fs_watch_filename_options_listener).
+* `persistent: Boolean` (default **true**)
+* `recursive: Boolean` (default **false**)
+* `encoding: String` (default **'utf8'**)
+
+**Extra options**
+
+* `filter: RegExp | Function`
+
+ Return that matches the filter expression.
+
+ ```js
+ // filter with regular expression
+ watch('./', { filter: /\.json$/ });
+
+ // filter with custom function
+ watch('./', { filter: f => !/node_modules/.test(f) });
+
+ ```
+
+ Each file and directory will be passed to the filter to determine whether
+ it will then be passed to the callback function. Like `Array.filter` does in `JavaScript`.
+ There are three kinds of return values for filter function:
+
+ * **`true`**: Will be passed to callback.
+ * **`false`**: Will not be passed to callback.
+ * **`skip`**: Same with `false`, and skip to watch all its subdirectories.
+
+ On Linux, where the `recursive` option is not natively supported,
+ it is more efficient to skip ignored directories by returning the `skip` flag:
+
+ ```js
+ watch('./', {
+ recursive: true,
+ filter(f, skip) {
+ // skip node_modules
+ if (/\/node_modules/.test(f)) return skip;
+ // skip .git folder
+ if (/\.git/.test(f)) return skip;
+ // only watch for js files
+ return /\.js$/.test(f);
+ }
+ });
+
+ ```
+
+ If you prefer glob patterns you can use [minimatch](https://www.npmjs.com/package/minimatch) or [picomatch](https://www.npmjs.com/package/picomatch)
+ together with filter:
+
+ ```js
+ const pm = require('picomatch');
+ let isMatch = pm('*.js');
+
+ watch('./', {
+ filter: f => isMatch(f)
+ });
+ ```
+
+* `delay: Number` (in ms, default **200**)
+
+ Delay time of the callback function.
+
+ ```js
+ // log after 5 seconds
+ watch('./', { delay: 5000 }, console.log);
+ ```
+
+## Events
+
+The events provided by the callback function is either `update` or `remove`, which is less confusing to `fs.watch`'s `rename` or `change`.
+
+```js
+watch('./', function(evt, name) {
+
+ if (evt == 'update') {
+ // on create or modify
+ }
+
+ if (evt == 'remove') {
+ // on delete
+ }
+
+});
+```
+
+
+## Watcher object
+
+The watch function returns a [fs.FSWatcher](https://nodejs.org/api/fs.html#fs_class_fs_fswatcher) like object as the same as `fs.watch` (>= v0.4.0).
+
+#### Watcher events
+
+```js
+let watcher = watch('./', { recursive: true });
+
+watcher.on('change', function(evt, name) {
+ // callback
+});
+
+watcher.on('error', function(err) {
+ // handle error
+});
+
+watcher.on('ready', function() {
+ // the watcher is ready to respond to changes
+});
+```
+
+#### Close
+
+```js
+// close
+watcher.close();
+
+// is closed?
+watcher.isClosed()
+```
+
+#### List of methods
+
+* `.on`
+* `.once`
+* `.emit`
+* `.close`
+* `.listeners`
+* `.setMaxListeners`
+* `.getMaxListeners`
+
+##### Extra methods
+* `.isClosed` detect if the watcher is closed
+* `.getWatchedPaths` get all the watched paths
+
+
+## Known issues
+
+**Windows, node < v4.2.5**
+
+ * Failed to detect `remove` event
+ * Failed to get deleted filename or directory name
+
+**MacOS, node 0.10.x**
+ * Will emit double event if the directory name is of one single character.
+
+
+## Misc
+
+#### 1. Watch multiple files or directories in one place
+```js
+watch(['file1', 'file2'], console.log);
+```
+
+#### 2. Customize watch command line tool
+```js
+#!/usr/bin/env node
+
+// https://github.com/nodejs/node-v0.x-archive/issues/3211
+require('epipebomb')();
+
+let watcher = require('node-watch')(
+ process.argv[2] || './', { recursive: true }, console.log
+);
+
+process.on('SIGINT', watcher.close);
+```
+Monitoring chrome from disk:
+```bash
+$ watch / | grep -i chrome
+```
+
+#### 3. Got ENOSPC error?
+
+If you get ENOSPC error, but you actually have free disk space - it means that your OS watcher limit is too low and you probably want to recursively watch a big tree of files.
+
+Follow this description to increase the limit:
+[https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit](https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit)
+
+
+## Alternatives
+
+* [chokidar](https://github.com/paulmillr/chokidar)
+* [gaze](https://github.com/shama/gaze)
+* [mikeal/watch](https://github.com/mikeal/watch)
+
+## Contributors
+
+Thanks goes to [all wonderful people](https://github.com/yuanchuan/node-watch/graphs/contributors) who have helped this project.
+
+## License
+MIT
+
+Copyright (c) 2012-2021 [yuanchuan](https://github.com/yuanchuan)