Watch
The more things change, the more they stay the same. Or, as they say in France, "Omelette Du Fromage".
watch()
The watch() function implements a command line program for running another program while watching one or more files or directories. If any of the watched files change then it restarts the program.
It's implemented as a wrapper around chokidar with some additional command line processing.
You can create a simple script like this and run it with the -h command line option for help.
import { watch } from '@abw/badger'
watch()But you don't need to do that because we've done it for you. There's a badger-watch script provide as part of this distribution.
You can run badger-watch as a script from your package.json file. For example, something like this:
"scripts": {
"watch": "badger-watch -v -r -w lib -w config my-program.js arg1 arg2"
}In this example, running the command npm watch will run my-program.js arg1 arg2 and if any of the files in the lib or config directories change the program will be restarted.
The -v or --verbose option enables verbose mode. The -r or --restart option will restart the program whenever it exits. The -w <path> or --watch <path> option watches a path (e.g. a file or directory) for changes. The -h or --help option displays the help.
You can pass additional arguments to your program (e.g. arg1 and arg2 as shown above). These can include arguments with dashes (e.g. -foo, --bar, etc). If any of the arguments you want to pass to your program are those accepted by the watch command (e.g. -v, --verbose, etc.) then you should use the -- option just before your program so that they don't conflict.
For example, if your program accepts a -v option then you should invoke it like this:
badger-watch -v -r -w lib -w config -- my-program.js -v arg1 arg2"