Skip to content

base/base-cli-schema

Repository files navigation

base-cli-schema NPM version NPM downloads Build Status

Schema for the base-cli plugin, used for normalizing argv values before passing them to cli.process().

Install

Install with npm:

$ npm install base-cli-schema --save

Usage

var argv = require('minimist')(process.argv.slice(2));
var Base = require('base');
var cliSchema = require('base-cli-schema');

var app = new Base();
app.use(cli());
var schema = cliSchema(app);

var obj = schema.normalize(argv);
console.log(obj);

Custom fields

Field names correspond to properties on the parsed argv object.

var schema = cliSchema(app)
  .field('foo', 'string', {
    normalize: function(val, key, config, schema) {
      // do stuff to val
      return 'bar';
    }
  })

var obj = schema.normalize(argv);
console.log(obj);
//=> {foo: 'bar'}

Related projects

You might also be interested in these projects:

  • base-cli-process: Normalizers for common argv commands handled by the base-cli plugin. Also pre-processes the given object… more | homepage
  • base-cli: Plugin for base-methods that maps built-in methods to CLI args (also supports methods from a… more | homepage
  • base-option: Adds a few options methods to base, like option, enable and disable. See the readme… more | homepage
  • base: base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… more | homepage

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

Generate readme and API documentation with verb:

$ npm install verb && npm run docs

Or, if verb is installed globally:

$ verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.


This file was generated by verb, v0.9.0, on May 07, 2016.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  
  •  

Packages

No packages published