HEX
Server: Apache/2.4.61 (Ubuntu)
System: Linux hosting106 7.0.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.12-1 (2026-06-09T21:07Z) x86_64
User: clinicadentalargarate.com (1193)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/doc/node-commander/examples/custom-command-class.js
#!/usr/bin/env node

// const commander = require('commander'); // (normal include)
const commander = require('../'); // include commander in git clone of commander repo

// Use a class override to customise the command and its subcommands.

class CommandWithTrace extends commander.Command {
  createCommand(name) {
    const cmd = new CommandWithTrace(name);
    // Add an option to subcommands created using `.command()`
    cmd.option('-t, --trace', 'display extra information when run command');
    return cmd;
  }
};

function inpectCommand(command) {
  // The option value is stored as property on command because we called .storeOptionsAsProperties()
  console.log(`Called '${command.name()}'`);
  console.log(`args: ${command.args}`);
  console.log('opts: %o', command.opts());
};

const program = new CommandWithTrace('program')
  .option('-v, ---verbose')
  .action((options, command) => {
    inpectCommand(command);
  });

program
  .command('serve [params...]')
  .option('-p, --port <number>', 'port number')
  .action((params, options, command) => {
    inpectCommand(command);
  });

program
  .command('build <target>')
  .action((buildTarget, options, command) => {
    inpectCommand(command);
  });

program.parse();

// Try the following:
//    node custom-command-class.js --help
//    node custom-command-class.js serve --help
//    node custom-command-class.js serve -t -p 80 a b c
//    node custom-command-class.js build --help
//    node custom-command-class.js build --trace foo