1.0.11 • Published 6 months ago

jsrundir v1.0.11

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

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.

1.0.11

6 months ago

1.0.10-9

6 months ago