clean v4.0.2
clean

Clean is small but powerful node.js module that parses and sanitize argv for node, supporting:
- fully extendable types
- shorthands
- validatiors
- setters
Installation and Usage
npm install clean --savevar clean = require('clean');Usage: clean(options)
Argv Shorthands
We can define shorthands with the option options.shorthands.
var shorthands = {
c: 'cwd',
n: 'no-recursive'
};
clean({
shorthands: shorthands
}).argv(['node', 'xxx', '-c', 'abc', '-n']);
// The result is:
// {
// cwd: 'abc',
// recursive: false
// }Types
clean({
schema: {
cwd: {
type: require('path')
},
retry: {
type: Boolean
}
}
}).parse(
['node', 'xxx', '--cwd', 'abc', '--retry', 'false'],
function(err, results){
console.log(results.cwd); // the `path.resolved()`d 'abc'
console.log(results.retry === false); // is a boolean, not a string
}
);Validators and Setters
Validators and setters of clean is implemented by [checker](https://github.com/kaelzhang/node-checker), check the apis of checker for details.
You could check out the demo located at "example/clean.js". That is a very complicated situation of usage.
node example/clean.js --username guestProgramatical Details
constructor: clean(options)
- options
Object=- schema
Objectschema to define the argv - offset
Number=The offset from which the parser should start to parse. Optional. Default to2. - shorthands
Object=The schema used to clean the given object or the parsred argv - parallel
Boolean=falsewhether should check the argv in parallel, default tofalse
- schema
options.schema
name: {
// If `required == true` and `--name` is not specified in argv, there will be an error
required: true,
validate: function(value){
return /[a-z]/i.test(value);
},
set: function(value){
return value.replace(/^[a-z]/, function(m){
return m.toUpperCase();
});
}
}- required
Boolean - default
*ifrequiredistrue, this property will be ignored. - validate
function(v, is_default)|Arrayfunction for validation, or array of functions - set
function(v, is_default)|Arraysetter function, or array of functions.
There are three methods available for this object of validator and setter.
this.async()returns functiondone, and turns the current validator or setter into an asynchronous method. We can also usedoneto define better error messages.this.get(key)could fetch the value of other properties.this.set(key, value)could set values of other properties.
.argv(argv)
- argv
Arrayprocess.argvor something like that.
Parses the argument vector, without cleaning the data.
Returns Object The parsed object with shorthand rules applied.
.clean(data, callback)
- data
ObjectThe given data. - callback
function(err, results)
Cleans the given data according to the schema.
.parse(argv, callback)
Parses argument vector (argv) or something like process.argv, and cleans the parsed data according to the schema.
This method is equivalent to c.clean(c.argv(argv), callback).
Advanced Section
.registerType(type, typeDef)
Registers a custom type.