{"name":"clean","version":"2.1.6","description":"clean parses and santitize argv or options for node, supporting fully extendable types, shorthands, validatiors and setters.","main":"index.js","scripts":{"test":"make test"},"repository":{"type":"git","url":"git@github.com:kaelzhang/node-clean.git"},"keywords":["argv","parser","argument-vector","cleaner","simple"],"author":{"name":"Kael"},"license":"MIT","readmeFilename":"README.md","bugs":{"url":"https://github.com/kaelzhang/node-clean/issues"},"dependencies":{"checker":"~0.5.1","minimist":"~0.0.5"},"devDependencies":{"mocha":"~1.13.0","chai":"~1.8.0"},"readme":"[![NPM version](https://badge.fury.io/js/clean.png)](http://badge.fury.io/js/clean)\u000a[![Build Status](https://travis-ci.org/kaelzhang/node-clean.png?branch=master)](https://travis-ci.org/kaelzhang/node-clean)\u000a[![Dependency Status](https://gemnasium.com/kaelzhang/node-clean.png)](https://gemnasium.com/kaelzhang/node-clean)\u000a\u000a# clean\u000a\u000aClean is small but powerful node.js module that parses and santitize argv or options for node, supporting:\u000a\u000a- fully extendable types\u000a- shorthands\u000a- validatiors\u000a- setters\u000a\u000a# Installation and Usage\u000a\u000a```sh\u000anpm install clean --save\u000a```\u000a\u000a```js\u000avar clean = require('clean')(options);\u000a```\u000a\u000a# Usage\u000a\u000a## Argv Shorthands\u000a\u000aWe can define shorthands with the option `options.shorthands`.\u000a\u000a```js\u000avar shorthands = {\u000a\u0009// if `String`, define a shorthand for a key name\u000a\u0009c: 'cwd',\u000a\u0009// if `Array`, define a pattern slice of argv\u000a\u0009nr: ['--no-recursive'],\u000a\u0009// if `Object`, define a specific value\u000a\u0009r3: {\u000a\u0009\u0009retry: 3,\u000a\u0009\u0009strict: false\u000a\u0009}\u000a};\u000aclean({\u000a\u0009shorthands: shorthands\u000a}).argv(['node', 'xxx', '-c', 'abc', '--nr', '--r3']); \u000a// notice that '-nr' will be considered as '-n -r'\u000a// The result is:\u000a// {\u000a//\u0009\u0009cwd: 'abc',\u000a//\u0009\u0009recursive: false,\u000a//\u0009\u0009retry: 3,\u000a//\u0009\u0009strict: false \u000a// }\u000a```\u000a\u000a## Types\u000a\u000a```js\u000aclean({\u000a\u0009schema: {\u000a\u0009\u0009cwd: {\u000a\u0009\u0009\u0009type: require('path')\u000a\u0009\u0009},\u000a\u0009\u0009\u000a\u0009\u0009retry: {\u000a\u0009\u0009\u0009type: Boolean\u000a\u0009\u0009}\u0009\u0009\u000a\u0009}\u000a}).parseArgv(\u000a\u0009['node', 'xxx', '--cwd', 'abc', 'retry', 'false'], \u000a\u0009function(err, results, details){\u000a\u0009\u0009console.log(results.cwd); // the `path.resolved()`d 'abc'\u000a\u0009\u0009console.log(results.retry === false); // is a boolean, not a string\u000a\u0009}\u000a)\u000a```\u000a\u000aHow to extend a custom type ? See the \"advanced section\".\u000a\u000a## Validators and Setters\u000a\u000aValidators and setters of `clean` is implemented by `[checker](https://github.com/kaelzhang/node-checker)`, check the apis of `checker` for details.\u000a\u000aYou could check out the demo located at \"example/clean.js\". That is a very complicated situation of usage.\u000a\u000a```sh\u000anode example/clean.js --username guest\u000a```\u000a\u000a\u000a\u000a# Programatical Details\u000a\u000a## constructor: clean(schema, options)\u000a\u000a\u000a### options\u000a\u000a#### options.offset `Number=`\u000a\u000aThe offset from which the parser should start to parse. Optional. Default to `2`.\u000a\u000a#### options.shorthands `Object=`\u000a\u000aThe shorthands used to parse the argv.\u000a\u000a#### options.schema `Object=`\u000a\u000aThe schema used to clean the given object or the parsred argv\u000a\u000a#### options.check_all `Boolean=false`\u000a\u000a#### options.parallel `Boolean=false`\u000a\u000a#### options.limit `Boolean=false`\u000a\u000a\u000a## .argv(argv)\u000a\u000aParses the argument vector, without cleaning the data.\u000a\u000a### argv `Array`\u000a\u000a### returns `Object`\u000a\u000aThe parsed object with shorthand rules applied.\u000a\u000a\u000a## .clean(data, callback)\u000a\u000aCleans the given data according to the `schema`.\u000a\u000a### data `Object`\u000a\u000aThe given data.\u000a\u000a### callback `function(err, results, details)`\u000a\u000a\u000a## .parseArgv(argv, callback)\u000a\u000aParses argument vector (argv) or something like argv, and cleans the parsed data according to the `schema`.\u000a\u000aThis method is equivalent to `c.clean(c.argv(argv), callback)`.\u000a\u000a# Advanced Section\u000a\u000a## .registerType(type, typeDef)\u000a\u000a\u000a\u000a\u000a\u000a\u000a","_id":"clean@2.1.6","dist":{"shasum":"41c80b2b6f5432c60cddb81932ab56563b444f52","tarball":"http://registry.npmjs.org/clean/-/clean-2.1.6.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"kael","email":"i@kael.me"},"maintainers":[{"name":"kael","email":"i@kael.me"}],"directories":{}}