diff --git a/lib/is-isnt.js b/lib/is-isnt.js index c5c5245..2164c43 100644 --- a/lib/is-isnt.js +++ b/lib/is-isnt.js @@ -1,4 +1,8 @@ module.exports = (function ( Util ){ + + // For internal API + Util._isisnt = {}; + Util.is = {}; Util.isnt = {}; @@ -9,7 +13,7 @@ module.exports = (function ( Util ){ return instance && instance.constructor ? instance.constructor !== ClassToEval : ! ( instance instanceof ClassToEval ); }; - var addEvaluator = function ( ClassToEval, keys ) { + var register = Util._isisnt.register = function ( ClassToEval, keys ) { if( ! ClassToEval ) return; var isFn = function ( instance ) { @@ -28,7 +32,7 @@ module.exports = (function ( Util ){ Util.isnt[ key ] = isntFn; }); }, - addCustomEvaluator = function ( keys, isFn, isntFn ) { + registerCustom = Util._isisnt.registerCustom = function ( keys, isFn, isntFn ) { if( Util.isnt.function( isFn ) ) { throw new TypeError("isFn must be a function"); @@ -52,19 +56,19 @@ module.exports = (function ( Util ){ }; // Default Javascript Classes - addEvaluator( Function, [ 'Function', 'function' ] ); - addEvaluator( Array, [ 'Array', 'array' ] ); - addEvaluator( Object, [ 'Object', 'object' ] ); - addEvaluator( String, [ 'String', 'string' ] ); - addEvaluator( Error, [ 'Error', 'error' ] ); + register( Function, [ 'Function', 'function' ] ); + register( Array, [ 'Array', 'array' ] ); + register( Object, [ 'Object', 'object' ] ); + register( String, [ 'String', 'string' ] ); + register( Error, [ 'Error', 'error' ] ); // Default Browser Classes if( typeof HTMLElement !== 'undefined' ) { - addEvaluator( HTMLElement, [ 'HTMLElement', 'HTMLelement' ] ); + register( HTMLElement, [ 'HTMLElement', 'HTMLelement' ] ); } // Custom evaluators - addCustomEvaluator( [ 'numeric', 'number', 'Number' ], function ( instance ) { + registerCustom( [ 'numeric', 'number', 'Number' ], function ( instance ) { return typeof instance === 'number' || ! isNaN( parseInt( instance ) ); });