Neocon Propaganda Machine

    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 

    Install

    npm i xcm

    DownloadsWeekly Downloads

    2

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    264 kB

    Total Files

    24

    Last publish

    Collaborators

    • kamataryo