quack
Check the values of arguments passed to a function - see if they quack like a duck.
example
var quack = ; var { if ! throw 'is not a duck'; console;}; ; // throws: "is not a duck", last arg is wrong; // logs: "is a duck", tick
installation
NodeJS
npm install quack
var quack = ;
Browser
Download quack.js
, quack.min.js
, and quack.js.src
, and add them to your project.
RequireJS (AMD)
;
Standard
usage
quack
takes two arguments, and returns a boolean
(true
if it validates)
- the expected signature (array or comma-separated string)
- the arguments (
array
orarguments
object)
Two arrays
:
quack(['string', 'number'], ['my string', 123]); // true
A string
and arguments
object:
var coolFunction = function(){
return quack('string, number', arguments);
};
coolFunction('my string', 123); // true
validation types
- string:
String
(primitive) - number:
Number
(primitive) - boolean:
Boolean
(primitive) - object: ECMAScript
Object
, includingArray
,Function
,Object
,RegExp
,new Number(0)
, andnew String('')
- array:
Array
(not includingarguments
object) - function:
Function
- date:
Date
object - regexp:
RegExp
object - arguments:
arguments
object
road map
- 0.1: DONE initial release, with
string
,number
,object
, &array
(with tests) - 0.2: DONE add
function
,date
,regexp
,arguments
- 0.3: DONE shorthand
eg.
'"", [], 1'
short for'string, array, number'
- 0.4:
options
: a third argument- throws
boolean
: throw an error if validation fails - console
boolean
: log to the console if validation fails - message
string
: a specific message for logged/thrown errors
- throws
- 0.5: types of
arrays
&object
properties'[]string'
: anarray
ofstrings
'[string, number]'
: specific types within anarray
'{}string'
: anobject
with onlystring
properties'{val1: string, val2: number}'
: specificobject
property names and types
- 0.6: plain object type, with
'{}'
shorthand