jsrundir
v1.0.11
Published
Run and dynamically reload all scripts in a directory
Downloads
2
Readme
jsrundir
NodeJS package to run and automatically reload all scripts in a directory and first level subdirectories.
This package has no dependencies, and uses the nodejs fs.watch API. Currently tested only under Linux, but will extend to Windows as testing progresses.
Command line invokation
nodejs jsrundir.js [directories ...]
This will watch for all '*.js' and '*.json' files in the directories provided as argument list, and (re)import them wvery time they are added or changed. If no argument list is provided it will watch for files in the current working directory.
API (import from other package)
if (require.main === module) {
const path = require('path');
const process = require('process');
const parameters = process.argv.slice(2);
if (parameters.length != 1) process.exit(1);
// JSRunDir initialization ---------------------------------------------
const RunDir = new require('jsrundir');
const rundir = new RunDir(path.resolve(parameters[0]));
rundir.on('load', (name, module) => console.log(`loaded: ${name}`));
rundir.on('unload', (name, module) => console.log(`unloaded: ${name}`));
// ---------------------------------------------------------------------
const shutdown = () => {
// Stop JSRunDir instance
rundir.stop();
};
process.on('SIGINT', shutdown);
process.on('SIGTERM', shutdown);
process.on('uncaughtException', (error) => console.log(error));
try {
// Start JSRunDir instance (this will start watching and dynamic (re)loading
rundir.run();
}
catch (e) {
console.log(e);
shutdown();
}
}
Events
load: will be called every time a script file is added, with the loaded script name as first parameter, and the loaded module as second parameter.
unload: will be called every time a script file is removed with the unloaded script name as first parameter, and the unloaded module as second parameter.
When a script file is modified, an unload event will be triggered, followed by a load event.