check-more-types
Advanced tools
Comparing version 0.9.5 to 0.9.6
{ | ||
"name": "check-more-types", | ||
"main": "check-more-types.js", | ||
"version": "0.9.5", | ||
"version": "0.9.6", | ||
"homepage": "https://github.com/kensho/check-more-types", | ||
@@ -6,0 +6,0 @@ "license": "MIT", |
@@ -18,5 +18,6 @@ (function checkMoreTypes(check) { | ||
/** | ||
Checks if argument is defined or not | ||
Checks if argument is defined or not | ||
@method defined | ||
This method now is part of the check-types.js | ||
@method defined | ||
*/ | ||
@@ -37,6 +38,24 @@ function defined(value) { | ||
/** | ||
Checks if given value is 0 or 1 | ||
Returns true if all items in an array are the same reference | ||
@method bit | ||
@method allSame | ||
*/ | ||
function allSame(arr) { | ||
if (!check.array(arr)) { | ||
return false; | ||
} | ||
if (!arr.length) { | ||
return true; | ||
} | ||
var first = arr[0]; | ||
return arr.every(function (item) { | ||
return item === first; | ||
}); | ||
} | ||
/** | ||
Checks if given value is 0 or 1 | ||
@method bit | ||
*/ | ||
function bit(value) { | ||
@@ -47,5 +66,5 @@ return value === 0 || value === 1; | ||
/** | ||
Checks if given value is true of false | ||
Checks if given value is true of false | ||
@method bool | ||
@method bool | ||
*/ | ||
@@ -57,4 +76,4 @@ function bool(value) { | ||
/** | ||
Checks if given object has a property | ||
@method has | ||
Checks if given object has a property | ||
@method has | ||
*/ | ||
@@ -310,2 +329,3 @@ function has(o, property) { | ||
same: same, | ||
allSame: allSame, | ||
bit: bit, | ||
@@ -312,0 +332,0 @@ bool: bool, |
@@ -1,5 +0,5 @@ | ||
/*! check-more-types - v0.9.5 | ||
/*! check-more-types - v0.9.6 | ||
homepage: https://github.com/kensho/check-more-types | ||
Copyright @ 2014 Kensho license: MIT */ | ||
!function(a){"use strict";function b(a){return"undefined"!=typeof a}function c(a,b){return a===b}function d(a){return 0===a||1===a}function e(a){return"boolean"==typeof a}function f(a,b){return Boolean(a&&b&&"string"==typeof b&&"undefined"!=typeof a[b])}function g(b){return a.string(b)&&b.toLowerCase()===b}function h(b){return a.array(b)&&b.length>0}function i(b,c){var d=a.array(b)&&b.every(a.string);return d&&a.bool(c)&&c?b.every(a.lowerCase):d}function j(b,c){return a.array(b)&&b.every(function(b){return a.arrayOfStrings(b,c)})}function k(b,c){return a.verify.object(b,"missing object to check"),a.verify.object(c,"missing predicates object"),Object.keys(c).forEach(function(b){a.verify.fn(c[b],"not a predicate function for "+b)}),a.every(a.map(b,c))}function l(a,b){return k(b,a)}function m(b,c){a.verify.fn(b,"expected function that raises");try{b()}catch(d){return"undefined"==typeof c?!0:"function"==typeof c?c(d):!1}return!1}function n(a){var b="string"==typeof a||Array.isArray(a);return b?!a.length:a instanceof Object?!Object.keys(a).length:!1}function o(a){var b="string"==typeof a||Array.isArray(a);return b?a.length:a instanceof Object?Object.keys(a).length:!0}function p(b){return a.number(b)&&b>=0&&1>=b}function q(b){return a.string(b)&&r.test(b)}if(!a)throw new Error("Cannot find check-types library, has it been loaded?");var r=/^#(?:[0-9a-fA-F]{3}){1,2}$/;a.defend||(a.defend=function(b){var c=Array.prototype.slice.call(arguments,1);return function(){for(var d=arguments.length;d--;){var e=c[d];if(a.fn(e)&&!e.call(null,arguments[d]))throw new Error("Argument "+(d+1)+" "+arguments[d]+" does not pass predicate")}return b.apply(null,arguments)}}),a.mixin||(a.mixin=function(b,c){function d(b,c,d){a.verify.object(b,"missing object"),a.verify.unemptyString(c,"missing name"),a.verify.fn(d,"missing function"),b[c]||(b[c]=d)}function e(b){return function(){return!a.defined(arguments[0])||a.nulled(arguments[0])?!0:b.apply(null,arguments)}}function f(a){return function(){return!a.apply(null,arguments)}}function g(b,c){return function(){var d;if(b.apply(null,arguments)===!1)throw d=arguments[arguments.length-1],new Error(a.unemptyString(d)?d:c)}}a.verify.fn(b,"expected predicate function"),a.unemptyString(c)||(c=b.name),a.verify.unemptyString(c,"predicate function missing name\n"+b.toString()),d(a,c,b),d(a.maybe,c,e(b)),d(a.not,c,f(b)),d(a.verify,c,g(b,c+" failed"))});var s={defined:b,same:c,bit:d,bool:e,has:f,lowerCase:g,unemptyArray:h,arrayOfStrings:i,arrayOfArraysOfStrings:j,all:k,schema:l,raises:m,empty:n,unempty:o,unit:p,hexRgb:q};Object.keys(s).forEach(function(b){a.mixin(s[b],b)})}("object"==typeof window?window.check:global.check); | ||
!function(a){"use strict";function b(a){return"undefined"!=typeof a}function c(a,b){return a===b}function d(b){if(!a.array(b))return!1;if(!b.length)return!0;var c=b[0];return b.every(function(a){return a===c})}function e(a){return 0===a||1===a}function f(a){return"boolean"==typeof a}function g(a,b){return Boolean(a&&b&&"string"==typeof b&&"undefined"!=typeof a[b])}function h(b){return a.string(b)&&b.toLowerCase()===b}function i(b){return a.array(b)&&b.length>0}function j(b,c){var d=a.array(b)&&b.every(a.string);return d&&a.bool(c)&&c?b.every(a.lowerCase):d}function k(b,c){return a.array(b)&&b.every(function(b){return a.arrayOfStrings(b,c)})}function l(b,c){return a.verify.object(b,"missing object to check"),a.verify.object(c,"missing predicates object"),Object.keys(c).forEach(function(b){a.verify.fn(c[b],"not a predicate function for "+b)}),a.every(a.map(b,c))}function m(a,b){return l(b,a)}function n(b,c){a.verify.fn(b,"expected function that raises");try{b()}catch(d){return"undefined"==typeof c?!0:"function"==typeof c?c(d):!1}return!1}function o(a){var b="string"==typeof a||Array.isArray(a);return b?!a.length:a instanceof Object?!Object.keys(a).length:!1}function p(a){var b="string"==typeof a||Array.isArray(a);return b?a.length:a instanceof Object?Object.keys(a).length:!0}function q(b){return a.number(b)&&b>=0&&1>=b}function r(b){return a.string(b)&&s.test(b)}if(!a)throw new Error("Cannot find check-types library, has it been loaded?");var s=/^#(?:[0-9a-fA-F]{3}){1,2}$/;a.defend||(a.defend=function(b){var c=Array.prototype.slice.call(arguments,1);return function(){for(var d=arguments.length;d--;){var e=c[d];if(a.fn(e)&&!e.call(null,arguments[d]))throw new Error("Argument "+(d+1)+" "+arguments[d]+" does not pass predicate")}return b.apply(null,arguments)}}),a.mixin||(a.mixin=function(b,c){function d(b,c,d){a.verify.object(b,"missing object"),a.verify.unemptyString(c,"missing name"),a.verify.fn(d,"missing function"),b[c]||(b[c]=d)}function e(b){return function(){return!a.defined(arguments[0])||a.nulled(arguments[0])?!0:b.apply(null,arguments)}}function f(a){return function(){return!a.apply(null,arguments)}}function g(b,c){return function(){var d;if(b.apply(null,arguments)===!1)throw d=arguments[arguments.length-1],new Error(a.unemptyString(d)?d:c)}}a.verify.fn(b,"expected predicate function"),a.unemptyString(c)||(c=b.name),a.verify.unemptyString(c,"predicate function missing name\n"+b.toString()),d(a,c,b),d(a.maybe,c,e(b)),d(a.not,c,f(b)),d(a.verify,c,g(b,c+" failed"))});var t={defined:b,same:c,allSame:d,bit:e,bool:f,has:g,lowerCase:h,unemptyArray:i,arrayOfStrings:j,arrayOfArraysOfStrings:k,all:l,schema:m,raises:n,empty:o,unempty:p,unit:q,hexRgb:r};Object.keys(t).forEach(function(b){a.mixin(t[b],b)})}("object"==typeof window?window.check:global.check); |
@@ -37,2 +37,13 @@ ### check.defined | ||
### check.allSame | ||
var foo = {}, | ||
bar = {}; | ||
check.allSame([foo, foo, foo]); // true | ||
check.allSame([foo, foo, bar]); // false | ||
// primitives are compared by value | ||
check.allSame([0, 0]); // true | ||
check.allSame(['foo', 'foo', 'foo']); // true | ||
check.allSame([false, 0]); // false | ||
--- | ||
@@ -39,0 +50,0 @@ |
{ | ||
"name": "check-more-types", | ||
"description": "Additional type checks for https://github.com/philbooth/check-types.js", | ||
"version": "0.9.5", | ||
"version": "0.9.6", | ||
"author": "Gleb Bahmutov <gleb.bahmutov@gmail.com>", | ||
@@ -6,0 +6,0 @@ "bugs": { |
@@ -1,2 +0,2 @@ | ||
# check-more-types v0.9.5 | ||
# check-more-types v0.9.6 | ||
@@ -51,2 +51,3 @@ > Additional type checks for [check-types.js](https://github.com/philbooth/check-types.js) | ||
* [check.same](#checksame) | ||
* [check.allSame](#checkallsame) | ||
* [check.unit](#checkunit) | ||
@@ -116,2 +117,13 @@ * [check.hexRgb](#checkhexrgb) | ||
#### check.allSame | ||
var foo = {}, | ||
bar = {}; | ||
check.allSame([foo, foo, foo]); // true | ||
check.allSame([foo, foo, bar]); // false | ||
// primitives are compared by value | ||
check.allSame([0, 0]); // true | ||
check.allSame(['foo', 'foo', 'foo']); // true | ||
check.allSame([false, 0]); // false | ||
--- | ||
@@ -118,0 +130,0 @@ |
@@ -90,4 +90,27 @@ /* global describe, la, check, it */ | ||
}); | ||
}); | ||
describe('check.allSame', function () { | ||
la(check.fn(check.allSame)); | ||
it('returns false for non arrays', function () { | ||
la(!check.allSame('foo')); | ||
la(!check.allSame()); | ||
la(check.allSame([])); | ||
}); | ||
/** @sample check/allSame */ | ||
it('check.allSame', function () { | ||
var foo = {}, bar = {}; | ||
la(check.allSame([foo, foo, foo])); | ||
la(!check.allSame([foo, foo, bar])); | ||
// primitives are compared by value | ||
la(check.allSame([0, 0])); | ||
la(check.allSame(['foo', 'foo', 'foo'])); | ||
la(!check.allSame([false, 0])); | ||
}); | ||
}); | ||
describe('check.defined', function () { | ||
@@ -94,0 +117,0 @@ la(check.fn(check.bit)); |
317028
1275
514