1.1.1 • Published 8 years ago

command-line-arguments v1.1.1

Weekly downloads
97
License
MIT
Repository
github
Last release
8 years ago

Build Status Coverage Status NPM

command-line-arguments

Simple way to serialize JavaScript objects from command line arguments

Synopsis

You can make JSON style objects directly from command line arguments using simple notation. Dashes indicate classes, attributes, and values.

$ node add-contact.js person -firstname --john -lastname --smith -age --30

Would serialize to

{
  person: {
    firstname: 'john',
    lastname: 'smith',
    age: 30
  }
}

Usage

Command line arguments with no dashes are the base class(es) or attribute(s). Each dash represents another 'level'. In this example, person is the base class, firstname, lastname, and age are the attributes, and john, smith, and 30 are the values of those attributes.

Levels are determined by the number of dashes before an argument. The fewer dashes the higher the level. Arguments with no levels below them (they have no arguments with more dashes following them in the list) are values. Arguments with only one level after them are attributes. Arguments with multiple levels after them are classes.

//$ exampleProgram person -firstname --john -lastname --smith -age --30

var cla = require('command-line-arguments');

var params = cla.getCommandLineArguments();
console.log(params.firstname); //prints john
//$ exampleProgram2 car -tire --type ---goodyear --age ---2 -color --blue -cost --10000 -condition --good

var cla = require('command-line-arguments');

var params = cla.getCommandLineArguments();

// params = {
//  car:{
//    tire: {
//      type: 'goodyear',
//      age: 2
//    }
//    color: blue,
//    cost: 10000,
//    condition: 'good'
//  }
//}

##Install

npm install command-line-arguments --save

##Examples

//$ node addFood.js name -hotdog calories -400 primary-ingredients -bun -dog -mustard -ketchup

var cla = require('command-line-arguments');
food = cla.getCommandLineArguments();

// food =
//  {
//    name: 'hotdog',
//    calories: 400,
//    'primary-ingredients': [ 'bun', 'dog', 'mustard', 'ketchup' ]
//  };

Simple arrays are supported

//$ node nouns.js person place thing

var cla = require('command-line-arguments');
var nouns = cla.getCommandLineArguments();

// nouns = ['person', 'place', 'thing'];

You can pass in the parameters if you need to, or pass in no parameters and it will automatically read the command line arguments

//$ node program.js

var params = ['car', '-model', '--2001 Toyota Corolla', '-milage', '--219,000', '-color', '--tan' ];
var paramsParsed = cla.getCommandLineArguments(params);

// paramsParsed = {
//  car: {
//    model: '2001 Toyota Corolla',
//    milage: '219,000',
//    color: 'tan'
//  }
//}

##Licensing This project is licensed under the terms of the MIT license