mandatory
Version:
A tiny error-throwing module for checking types.
43 lines (34 loc) • 1.07 kB
JavaScript
/*
* mandatory
*
* Copyright(c) 2014 André König <andre.koenig@konexmedia.com>
* MIT Licensed
*
*/
/**
* @author André König <andre.koenig@konexmedia.com>
*
*/
;
var assert = require('assert');
var util = require('util');
module.exports = function (candidate) {
var type = typeof candidate;
type = ('object' === type && util.isArray(candidate)) ? 'array' : type;
return {
is: function is (expected, message) {
expected = expected.toLowerCase();
message = message || 'Expected "' + expected + '", but received "' + type + '".';
switch (expected) {
case 'object':
assert.equal(type === 'object' && !util.isArray(candidate), true, message);
break;
case 'array':
assert.equal(util.isArray(candidate), true, message);
break;
default:
assert.equal(type, expected, message);
}
}
};
};