Nocturnal Pajama Mutants

    safe-commander

    2.11.2 • Public • Published

    safe Commander.js

    npm version npm downloads

    Commander.js has a major design flaw in the option API, such that options like name, opts, command, option, domain collide with names of properties on the commander instance. See issues: #404, #584, #648

    Important: safe-commander solves the name collision problem, however using it requires changing your code.

    Installation

    $ npm install safe-commander --save
    

    Usage

    Follow Commander API documentation

    Breaking changes

    Options created with option API will no longer be available on the Commander instance object. Instead, a new object store optsObj was added.

    The original Commander.js example should be modified as follows:

     #!/usr/bin/env node
     
     /**
      * Module dependencies.
      */
     
    -var program = require('commander');
    +var program = require('safe-commander');
     
     program
       .version('0.1.0')
       .option('-p, --peppers', 'Add peppers')
       .option('-P, --pineapple', 'Add pineapple')
       .option('-b, --bbq-sauce', 'Add bbq sauce')
       .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
       .parse(process.argv);
     
     console.log('you ordered a pizza with:');
    -if (program.peppers) console.log('  - peppers');
    -if (program.pineapple) console.log('  - pineapple');
    -if (program.bbqSauce) console.log('  - bbq');
    -console.log('  - %s cheese', program.cheese);
    +if (program.optsObj.peppers) console.log('  - peppers');
    +if (program.optsObj.pineapple) console.log('  - pineapple');
    +if (program.optsObj.bbqSauce) console.log('  - bbq');
    +console.log('  - %s cheese', program.optsObj.cheese);

    Credits

    author

    contributors

    Contributing

    • Improve the documentation
    • Feel free to open any PR

    License

    MIT

    Install

    npm i safe-commander

    DownloadsWeekly Downloads

    2,224

    Version

    2.11.2

    License

    MIT

    Unpacked Size

    6.95 kB

    Total Files

    4

    Last publish

    Collaborators

    • bysabi