Socket
Socket
Sign inDemoInstall

noptify

Package Overview
Dependencies
2
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    noptify

nopt wrapper with commander-like API


Version published
Maintainers
1
Install size
53.3 kB
Created

Readme

Source

noptify

noptify is a little wrapper around nopt module adding a more expressive, commander-like, API and few helpers.

Examples

 var program = noptify(process.argv, { program: 'name' })
   .version('0.0.1')
   .option('port', '-p', 'Port to listen on (default: 35729)', Number)
   .option('pid', 'Path to the generated PID file', String)

 var opts = program.parse();

Returns an instance of Noptify

Noptify

Noptify provides the API to parse out option, shorthands and generate the proper generic help output.

  • args - The Array of arguments to parse (default: process.argv);
  • options - An hash of options with the following properties
    • program - The program name to use in usage output

Every noptify instance is created with two options, -h, --help and -v, --version.

Noptify#parse

Parse the provided options and shorthands, pass them through nopt and return the result.

When opts.help is set, the help output is displayed and help event is emitted. The process exists with 0 status, the help output is automatically displayed and the help event is emitted.

Examples

var program = noptify(['foo', '--help'])
  .on('help', function() {
    console.log('Examples');
    console.log('');
    console.log('  foo bar --baz > foo.txt');
  });

var opts = program.parse();
// ... Help output ...
// ... Custom help output ...
// ... Exit ...

Noptify#version

Define the program version.

Noptify#option

Define name option with optional shorthands, optional description and optional type.

Noptify#help

Simply output to stdout the Usage and Help output.


Mocha generated documentation

  • API
  • Collectable
  • Commandable

API

returns an instanceof Noptify.

assert.ok(noptify() instanceof noptify.Noptify);

is typically used like so.

var program = noptify(['node', 'file.js', '-d', '--dirname', './', '-p', '3000', 'app.js', 'base.js'])
  .option('debug', '-d', 'Enabled debug output', Boolean)
  .option('dirname', 'The path to the output directory')
  .option('port', '-p', 'The port you wish to listen on', Number)

// opts => nopt result
var opts = program.parse();

assert.deepEqual(opts, {
  port: 3000,
  debug: true,
  dirname: './',
  argv: {
    remain: ['app.js', 'base.js'],
    cooked: ['--debug', '--dirname', './', '--port', '3000', 'app.js', 'base.js'],
    original: ['-d', '--dirname', './', '-p', '3000', 'app.js', 'base.js']
  }
});

allows definitiion of shorthands separately.

var opts = noptify(['node', 'file.js', '-lc'])
  .option('line-comment', 'Ouputs with debugging information', Boolean)
  .shorthand('lc', '--line-comment')
  .parse();

assert.equal(opts['line-comment'], true);

Collectable

provides the helper method to read from stdin.

var program = noptify();
assert.ok(typeof program.stdin === 'function', 'stdin defined');

is invoked only when .parse() is called.

var program = noptify(['', '']);
var str = 'testing out stdin helper';
program.stdin(function(err, res) {
  assert.equal(res, str);
  done();
});

program.parse();

process.nextTick(function() {
  process.stdin.emit('data', str);
  process.stdin.emit('end');
});

Commandable

provides the .command() utility.

assert.ok(typeof noptify().command === 'function');

Parses remaining arguments and route to the appropriate command

can be a simple function.

var program = noptify(['', '', 'init', '--debug', 'foo']).option('debug', 'an option');

program.command('init', function(args, opts) {
  // args ==> sliced args at command position
  // opts ==> nopt parsed object
  assert.deepEqual(args, ['--debug', 'foo']);
  assert.equal(opts.debug, true);
  assert.equal(opts.argv.remain[0], 'foo');
  done();
});

program.parse();

or another program, an Noptify instance.

var args = ['', '', 'init', '--debug', 'myapp', 'foo'];

var init = noptify(args)
  .option('debug', 'Debug output')
  .command('myapp', done.bind(null, null));

noptify(args).command('init', init).parse();

FAQs

Last updated on 13 Jan 2013

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc