{"_id":"argly","_rev":"10-bbc3b0e6d5ebca01f825e06636b2b126","name":"argly","description":"A concise command line arguments parser with robust type handling","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"argly","description":"A concise command line arguments parser with robust type handling","keywords":["argument","args","option","parser","parsing","cli","command"],"homepage":"https://github.com/patrick-steele-idem/argly","repository":{"type":"git","url":"git+https://github.com/patrick-steele-idem/argly.git"},"scripts":{"test":"mocha --ui bdd --reporter spec ./test && node_modules/.bin/jshint src"},"author":{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},"contributors":[{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},{"name":"Phillip Gates-Idem","email":"phillip.idem@gmail.com"}],"maintainers":[{"name":"pnidem","email":"pnidem@gmail.com"}],"dependencies":{},"devDependencies":{"mocha":"~1.15.1","chai":"~1.8.1","jshint":"^2.4.4"},"license":"MIT","bin":{},"main":"src/index.js","publishConfig":{"registry":"https://registry.npmjs.org/"},"version":"1.0.0","gitHead":"d059a7352a75a28c94e1b6c343c3ed6db284d2ae","bugs":{"url":"https://github.com/patrick-steele-idem/argly/issues"},"_id":"argly@1.0.0","_shasum":"2944cba8368f282527ac75ea837dfce93b81a36b","_from":".","_npmVersion":"2.14.20","_nodeVersion":"0.10.35","_npmUser":{"name":"pnidem","email":"pnidem@gmail.com"},"dist":{"shasum":"2944cba8368f282527ac75ea837dfce93b81a36b","tarball":"https://registry.npmjs.org/argly/-/argly-1.0.0.tgz","integrity":"sha512-f3xMoaUutCpjsoYwIMsUPgyKRDk3vnAM8n5SIfEteQ4FtIfZUQk+7QF/ywsUjxhj7sX4fF3YaQLjVALD+YUKow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEKoF3TsZsPN3ilXUXZRmUBbLDUkDXzf4hS6Vj+qwzYNAiAke/0DQAZo7iPc9NMZzy64A/vTq0osbYoeHfjgHaSRVQ=="}]},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/argly-1.0.0.tgz_1456506414328_0.001811749069020152"}},"1.1.0":{"name":"argly","description":"A concise command line arguments parser with robust type handling","keywords":["argument","args","option","parser","parsing","cli","command"],"homepage":"https://github.com/patrick-steele-idem/argly","repository":{"type":"git","url":"git+https://github.com/patrick-steele-idem/argly.git"},"scripts":{"test":"mocha --ui bdd --reporter spec ./test && node_modules/.bin/jshint src"},"author":{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},"contributors":[{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},{"name":"Phillip Gates-Idem","email":"phillip.idem@gmail.com"}],"maintainers":[{"name":"pnidem","email":"pnidem@gmail.com"}],"dependencies":{},"devDependencies":{"mocha":"~1.15.1","chai":"~1.8.1","jshint":"^2.4.4"},"license":"MIT","bin":{},"main":"src/index.js","publishConfig":{"registry":"https://registry.npmjs.org/"},"version":"1.1.0","gitHead":"a791a19df46ab8e0fb30378980cfd0dd44dbea4d","bugs":{"url":"https://github.com/patrick-steele-idem/argly/issues"},"_id":"argly@1.1.0","_shasum":"f27c2883af8ac6104544a81cafca1b51890909fa","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"pnidem","email":"pnidem@gmail.com"},"dist":{"shasum":"f27c2883af8ac6104544a81cafca1b51890909fa","tarball":"https://registry.npmjs.org/argly/-/argly-1.1.0.tgz","integrity":"sha512-5sUcIP3wCTb+EM2q67qSFQmHalUYFJtPX55Apd8XsJDMoYOZYAz06JVHIz3/aI2BdaUM/spDNIgaItf6O94tug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtlGCQ0FiiGVuIcwk9N5qdoD10Dtao8UkaHDyKUORAJAIgP9Uo5sC7DDAijABzmWpYHLqK+vxMrPO6UcBgulDU3NE="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/argly-1.1.0.tgz_1480609101031_0.4066061375197023"}},"1.1.1":{"name":"argly","description":"A concise command line arguments parser with robust type handling","keywords":["argument","args","option","parser","parsing","cli","command"],"homepage":"https://github.com/patrick-steele-idem/argly","repository":{"type":"git","url":"git+https://github.com/patrick-steele-idem/argly.git"},"scripts":{"test":"mocha --ui bdd --reporter spec ./test && node_modules/.bin/jshint src"},"author":{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},"contributors":[{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},{"name":"Phillip Gates-Idem","email":"phillip.idem@gmail.com"}],"maintainers":[{"name":"pnidem","email":"pnidem@gmail.com"}],"dependencies":{},"devDependencies":{"mocha":"~1.15.1","chai":"~1.8.1","jshint":"^2.4.4"},"license":"MIT","bin":{},"main":"src/index.js","publishConfig":{"registry":"https://registry.npmjs.org/"},"version":"1.1.1","gitHead":"5f0d4601fcc23eb95cee9f7037911044f84bd1cc","bugs":{"url":"https://github.com/patrick-steele-idem/argly/issues"},"_id":"argly@1.1.1","_shasum":"a403647a6f877d630f1e97d046840c1aab3a401c","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"pnidem","email":"pnidem@gmail.com"},"dist":{"shasum":"a403647a6f877d630f1e97d046840c1aab3a401c","tarball":"https://registry.npmjs.org/argly/-/argly-1.1.1.tgz","integrity":"sha512-8KMg6k2pA3mdSxB5KJWUVBheM9jRRrX0iJDOxhBOQoJXrWSl+ofWwZeNuNJmem9ZKAwWsGND5i9NbsvkM60qCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIALyTuKRiBAzz5cqjCLv/KHEHmBgQDrpBTpikTFY/7/fAiB1CRSrOVcrVKQ5lvY4wEupxlMtlITeueoe6yIZZiojwA=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/argly-1.1.1.tgz_1483468457490_0.6254510204307735"}},"1.2.0":{"name":"argly","description":"A concise command line arguments parser with robust type handling","keywords":["argument","args","option","parser","parsing","cli","command"],"homepage":"https://github.com/patrick-steele-idem/argly","repository":{"type":"git","url":"git+https://github.com/patrick-steele-idem/argly.git"},"scripts":{"test":"mocha --ui bdd --reporter spec ./test && node_modules/.bin/jshint src"},"author":{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},"contributors":[{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},{"name":"Phillip Gates-Idem","email":"phillip.idem@gmail.com"}],"maintainers":[{"name":"pnidem","email":"pnidem@gmail.com"}],"dependencies":{},"devDependencies":{"mocha":"~1.15.1","chai":"~1.8.1","jshint":"^2.4.4"},"license":"MIT","bin":{},"main":"src/index.js","publishConfig":{"registry":"https://registry.npmjs.org/"},"version":"1.2.0","gitHead":"28dc7d2a3bc2e1031d2099e74af4c014dd7485e2","bugs":{"url":"https://github.com/patrick-steele-idem/argly/issues"},"_id":"argly@1.2.0","_shasum":"2b274e4551a29ff5e7199d2ed9788eb66ed36e60","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"pnidem","email":"pnidem@gmail.com"},"dist":{"shasum":"2b274e4551a29ff5e7199d2ed9788eb66ed36e60","tarball":"https://registry.npmjs.org/argly/-/argly-1.2.0.tgz","integrity":"sha512-+F3InkcH2XOGK7Jf/ZQis4cwZ4wbfmpBKo5J+SAA9bglT1gVd0e9hroHWarU076pJrAfs8JKuRPwDqwPBOKHnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCy4zTW076DNbnJWiTKPrIaJQpgfW9gRh2KH6V87g2olQIgYCoMoA05gWK4DxNB9ipxUPMgYuSE7HLBWPFkh0Ih+8U="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/argly-1.2.0.tgz_1488841957087_0.5565595058724284"}}},"readme":"argly\n===========\nA flexible and simple command line arguments parser that generates friendly help messages.\n\n# Installation\n```bash\nnpm install argly --save\n```\n\n# Usage\n\n```javascript\n// Create a parser:\nvar parser = require('argly').createParser(options);\nvar parsed = parser.parse(argsArray);\n\n// parsed will be an object with properties corresponding to provided arguments\n```\n\n## Simple Example\n\nParse arguments provided by `process.argv`:\n\nGiven the following JavaScript code to parse the args:\n```javascript\n// Create a parser and parse process.argv\nrequire('argly').createParser({\n        '--foo -f': 'boolean',\n        '--bar -b': 'string'\n    })\n    .parse();\n```\n\nAnd the following command:\n```bash\nnode app.js --foo -b b\n```\n\nThe output will be:\n\n```javascript\n//Output:\n{\n    foo: true,\n    bar: 'baz'\n}\n```\n\nYou can also parse your own array of arguments instead of using `process.argv`:\n\n```javascript\n// Create a parser and parse provided args\nrequire('argly').createParser({\n        '--foo -f': 'boolean',\n        '--bar -b': 'string'\n    })\n    .parse(['--foo', '-b', 'baz']);\n\n//Output:\n{\n    foo: true,\n    bar: 'baz'\n}\n```\n\nYou can also be more descriptive and add usage, examples, error handlers and validation checks:\n```javascript\n// Create a parser:\nrequire('argly')\n    .createParser({\n        '--help': {\n            type: 'string',\n            description: 'Show this help message'\n        },\n        '--foo -f': {\n            type: 'string',\n            description: 'Some helpful description for \"foo\"'\n        },\n        '--bar -b': {\n            type: 'string',\n            description: 'Some helpful description for \"bar\"'\n        }\n    })\n    .usage('Usage: $0 [options]')\n    .example(\n        'First example',\n        '$0 --foo hello')\n    .example(\n        'Second example',\n        '$0 --foo hello --bar world')\n    .validate(function(result) {\n        if (result.help) {\n            this.printUsage();\n            process.exit(0);\n        }\n\n        if (!result.foo || !result.bar) {\n            this.printUsage();\n            console.log('--foo or --bar is required');\n            process.exit(1);\n        }\n    })\n    .onError(function(err) {\n        this.printUsage();\n        console.error(err);\n        process.exit(1);\n    })\n    .parse();\n```\n\nRunning the above program with the `--help` argument will produce the following output:\n\n```\nUsage: args [options]\n\nExamples:\n\n  First example:\n     args --foo hello\n\n  Second example:\n     args --foo hello --bar world\n\nOptions:\n\n  --help Show this help message [string]\n\n--foo -f Some helpful description for \"foo\" [string]\n\n--bar -b Some helpful description for \"bar\" [string]\n```\n\n\n## Aliases\n\nAliases can be provided as space-separated values for an option:\n```javascript\n// Create a parser:\nvar parser = require('argly').createParser({\n    '--foobar --foo -f': 'string', // \"--foobar\" has two aliases: \"--foo\" and \"-f\"\n    '--hello -h': 'string',        // \"--hello\" has one alias: \"-h\"\n});\n\nparser.parse('--foo FOO -h HELLO'.split(' '));\n// Output:\n{\n    foobar: 'FOO',\n    hello: 'HELLO'\n}\n\n// **NOTE**: Only the first entry is used to determine the target property name--not the aliases.\n```\n\n## Booleans\n\nAn argument value of \"true\" or \"false\" is automatically converted to the corresponding boolean type. If a argument is prefixed with \"no-\" then it will be set to `false`.\n\n```javascript\n// Create a parser:\nvar parser = require('argly').createParser({\n    '--foo': 'boolean',\n    '--bar': 'boolean'\n});\n\nparser.parse('--foo --no-bar'.split(' '));\n// Output:\n{\n    foo: true,\n    bar: false\n}\n```\n\n## Arrays\n\nAny argument with multiple values will result in an `Array` value, but if you want to force an array for a single value then you can append \"[]\" to the option type as shown in the following sample code:\n```javascript\n// Create a parser:\nvar parser = require('argly').createParser({\n    '--foo': 'string[]'\n});\n\nparser.parse('--foo a'.split(' '));\n// Output:\n{\n    foo: ['a']\n}\n\nparser.parse('--foo a b c'.split(' '));\n// Output:\n{\n    foo: ['a', 'b', 'c']\n}\n```\n\n## Wildcards\n\nA parser will throw an error for unrecognized arguments unless wildcards are used as shown in the examples below.\n\n```javascript\n// Create a parser:\nvar parser = require('argly').createParser({\n    '--foo -f *': 'string[]' // Any unrecognized argument at the beginning is an alias for \"foo\"\n});\n\nparser.parse('a b --foo c'.split(' '));\n// Output:\n{\n    foo: ['a', 'b', 'c']\n}\n```\n\n```javascript\n// Create a parser:\nvar parser = require('argly').createParser({\n    '*': null\n});\n\nparser.parse('a b --foo FOO --bar BAR'.split(' '));\n// Output:\n{\n    '*': ['a', 'b'],\n    foo: 'FOO',\n    bar: 'BAR'\n}\n```\n\n## Complex Types\n\nSquare brackets can be used to begin and end complex types:\n\n```javascript\n// Create a parser:\nvar parser = require('argly').createParser({\n    '--foo -f': 'boolean',\n    '--plugins --plugin -p': {\n        options: {\n            '--module -m *': 'string',\n            '-*': null\n        }\n    }\n});\n\nvar parsed = parser.parse('--foo --plugins [ --module plugin1 -x -y ] [ plugin2 -z Hello ]'.split(' '));\n\n// Output:\n{\n    foo: true,\n    plugins: [\n        {\n            module: 'plugin1',\n            x: true,\n            y: true\n        },\n        {\n            module: 'plugin2',\n            z: 'Hello'\n        }\n    ]\n}\n```\n\n\n# Similar Projects\n\n* [optimist](https://github.com/substack/node-optimist) - Popular but deprecated. Awkward API and not DRY as shown in the following comparison:\n\n__optimist:__\n\n```javascript\nvar result = require('optimist')(args)\n    .alias('h', 'help')\n    .describe('h', 'Show this help message')\n    .boolean('h')\n    .alias('f', 'foo')\n    .describe('f', 'Some helpful description for \"foo\"')\n    .string('f')\n    .alias('b', 'bar')\n    .describe('b', 'Some helpful description for \"bar\"')\n    .string('b')\n    .argv;\n```\n\n__argly:__\n\n```javascript\nvar result = require('argly')\n    .createParser({\n        '--help':   { type: 'string', description: 'Show this help message' },\n        '--foo -f': { type: 'string', description: 'Some helpful description for \"foo\"' },\n        '--bar -b': { type: 'string', description: 'Some helpful description for \"bar\"' }\n    })\n    .parse();\n```\n\n* [yargs](https://github.com/chevex/yargs) - A fork of `optimist` with documentation for those who speak Pirate.\n* [minimist](https://github.com/substack/minimist) - Very few features (by design). Not DRY.\n\n# TODO\n\n* Support equal separator: `--hello=world`\n* Support number arg: `-x256`\n\n# Additional Reading\n\nFor module help, check out the test cases under the \"test\" directory.\n\n# License\n\nMIT\n","maintainers":[{"email":"austin.kell47@gmail.com","name":"austinkelleher"},{"email":"pierceydylan@gmail.com","name":"dylanpiercey"},{"email":"ml.rawlings@gmail.com","name":"mlrawlings"},{"email":"pnidem@gmail.com","name":"pnidem"}],"time":{"modified":"2022-06-13T03:26:11.865Z","created":"2016-02-26T17:06:57.331Z","1.0.0":"2016-02-26T17:06:57.331Z","1.1.0":"2016-12-01T16:18:23.075Z","1.1.1":"2017-01-03T18:34:19.636Z","1.2.0":"2017-03-06T23:12:37.779Z"},"homepage":"https://github.com/patrick-steele-idem/argly","keywords":["argument","args","option","parser","parsing","cli","command"],"repository":{"type":"git","url":"git+https://github.com/patrick-steele-idem/argly.git"},"contributors":[{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},{"name":"Phillip Gates-Idem","email":"phillip.idem@gmail.com"}],"author":{"name":"Patrick Steele-Idem","email":"pnidem@gmail.com"},"bugs":{"url":"https://github.com/patrick-steele-idem/argly/issues"},"license":"MIT","readmeFilename":"README.md","users":{"mrxf":true}}