0.0.2 • Published 13 years ago
parseArgs v0.0.2
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), wherenameis the name of the argument.optional(name, defaultValue, checker), wherenameis the name of the argument,defaultValueis a default value to assign to the argument if nothing gets passed in, andcheckis either an object with atypeorinstancefield or a function. Ifcheckis an object, the optional argument will have its type checked against the string set in thetypefield (if provided), and check whether it's an instance of the class set in theinstancefield (if provided). If it's a function, the function should be of the formfunction(arg, index, args), whereargis the current argument being checked,indexis the index of that argument in the total number of arguments, andargsthe 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), wherenameis the name of the argument, andcheckeris the same as thecheckerabove. 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.
0.0.2
13 years ago