Skip to content

From JSDoc info make sure that your arguments are valid appending validation code at the beginning of your functions using falafel.

Notifications You must be signed in to change notification settings

llafuente/argumentify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 (x == 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

About

From JSDoc info make sure that your arguments are valid appending validation code at the beginning of your functions using falafel.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published