argumentify

0.0.1 • Public • Published

Argumentify Build Status

From JSDoc info make sure that your arguments are valid appending validation code at the beginning of your functions using https://github.com/substack/node-falafel.

What does this means?

/**
 * @param {Number} x 
 */
function test(x) {
 
    // your code wont be modified!
}

Will be rewritten to:

/**
 * @param {Number} x 
 */
function __number(x) {
if (== undefined || Number.isNaN(x) || 'number' !== typeof x) {
    throw new Error("x is undefined or null")
}
    // your code wont be modified!
}

So your comments generate code... at last!

Usage

Browserify transform

output_stream = fs.createWriteStream('debug/js-2dmath-browser-debug.js');
 
require('browserify')('./index.js')
    .transform('argumentify')
    //or: .transform(require('argumentify').verbose())
    .bundle()
    .pipe(output_stream);

Falafel

var output = require("falafel")(src, {
    comment: true,
    loc: true
}, require("argumentify").falafel);

API

// argumentify itself is a function for browserify compatibility
var argumentify = require("argumentify");
 
//enable/disable verbose, usefull to fully cover your code
argumentify.verbose({Boolean})
 
// add new validator or overwrite default ones
argumentify.customValidators({
    Name: {
        // %var-name% is a token for check and message that is obviously... the name of the argument!
        check: ["javascript code inside the if", "another check"] //will be joined with OR!
        message: '%var-name% is undefined or null'
    }
});
 
// This is the falafel callaback that transform your code
argumentify.falafel;
 
// return the array with default String check (typeof)
argumentify.check.String();
 
// return the array with default Number check (typeof, !isNaN)
argumentify.check.Number();
 
// return the array with default Boolean check (typeof)
argumentify.check.Boolean();
 
// return the array with default Array check (Array.isArray)
argumentify.check.Array();
 
// return the array with default Object check (typeof, !Array.isArray)
argumentify.check.Object();
 
// return the array with default Function check (typeof)
argumentify.check.Function();
 
// return the array with default fixed size array of numbers check (...)
ArrayOfNumbers(n);
 
// return the array with default fixed size 2 levels array of numbers check (...)
MultiArrayOfNumbers(n, m)
 

License

MIT

Package Sidebar

Install

npm i argumentify

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • llafuente