parseArgs
v0.0.2
Published
A fluent DSL for parsing argument objects.
Downloads
14
Readme
parseArgs
A fluent Javascript DSL for parsing the arguments object. Allows for simple, concise optional arguments and repeating numbers of arguments.
Replace your if-else statements today!
Example
var updateOrder = function() {
var args = parseArgs(arguments)
.required('name')
.optional('discountCode', -1, {type: 'number'})
.optional('referrer', null, {instance: User})
.required('address')
.end
$('#orderField').text(
'Name: ' + args.name + ', discount code: ' + args.discountCode +
', referrer: ' + args.referrer + ', address: ' + args.address
);
}
API
To start the chain, call parseArgs(arguments)
, with the arguments
keyword literally
being passed into the function. You can then continue the chain with the following
methods:
required(name)
, wherename
is the name of the argument.optional(name, defaultValue, checker)
, wherename
is the name of the argument,defaultValue
is a default value to assign to the argument if nothing gets passed in, andcheck
is either an object with atype
orinstance
field or a function. Ifcheck
is an object, the optional argument will have its type checked against the string set in thetype
field (if provided), and check whether it's an instance of the class set in theinstance
field (if provided). If it's a function, the function should be of the formfunction(arg, index, args)
, wherearg
is the current argument being checked,index
is the index of that argument in the total number of arguments, andargs
the argument object provided as an Array. If the function returns true, the argument will be considered to have been passed in and the default value will not be set; if it returns false, the default value will be set.many(name, checker)
, wherename
is the name of the argument, andchecker
is the same as thechecker
above. Stores the passed-in values in an array; if none are passed in, the array will be empty.
Once the chain is done, just access the chain's end
property to finish it off. The parsed
arguments will be stored in the returned object using the names given to each of the argument
parsing calls.