xcm

1.0.4 • Public • Published

Xcm

Build Status

XCM or Xcommand is a Node.js CLI tool builder.

installation

$ yarn add xcm
$ npm install xcm --save # Use npm 

Usage

#!/usr/bin/env node
 
//
// cli.js
//
 
 
import Command from 'xcm';
 
const command = new Command('xcm');
 
command
  .sub('init')
  .action(() => process.stdout.write('init!'))
    .sub('something')
    .action(() => process.stdout.write('init something!'))
 
command
  .sub('opt')
  .option('hello', {isRequred: true, default: 'world' })
  .action(options => process.stdout.write(options))
 
command
  .sub('a')
    .sub('b')
      .sub('c')
        .sub('d')
          .sub('e')
          .action(() => process.stdout.write('abcde!'))
          .super()
        .super()
      .super()
    .super()
  .super()
  .sub('A')
    .sub('B')
      .sub('C')
        .sub('D')
          .sub('E')
          .action(() => process.stdout.write('ABCDE!'))
 
command
  .sub('help')
  .help()
 
// Go!
command.parse()
$ ./cli.js init                     # init! 
$ ./cli.js init something           # init something! 
$ ./cli.js opt                      # { hello: "world" } 
$ ./cli.js opt -y --hello="Node.js" # { y: true, hello: "Node.js" } 
$ ./cli.js a b c d e                # abcde! 
$ ./cli.js A B C D E                # ABCDE! 
$ ./cli.js help                     # <show help> 

APIs

constructor

import Command from "xcm";
const commnad = new Command("cli.js");
command.action(() => process.stdout.write("init!")).parse();
$ ./cli.js # init! 

command.sub(phrase:string)

sub define sub command.

import Command from "xcm";
new Command("cli.js");
  .sub("hello")
  .action(() => process.stdout.write("hello!"))
  .parse();
$ ./cli.js hello # hello! 

command.option(phrase, options)

option defines acceptable options. This will be used with help.

import Command from "xcm";
new Command("cli.js");
  .option('word', { isRequired: true })
  .action(opts => process.stdout.write(`say ${opts.word}!`))
  .parse();
$ ./cli.js --word=hello # say hello! 

command.action(callback)

action callback

command.describe(description:string)

describe defines description for the command. This will be used with help.

command.super()

command.parse()

parse starts parse given environment and execution of each command.

command.parseAsync()

Development

$ git clone git@github.com:kamataryo/xcm.git
cd xcm
$ yarn # or npm install 

Package Sidebar

Install

npm i xcm

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

264 kB

Total Files

24

Last publish

Collaborators

  • kamataryo