check-more-types
Advanced tools
Comparing version 2.8.0 to 2.9.0
@@ -78,2 +78,6 @@ (function checkMoreTypes() { | ||
function hasLength(x, k) { | ||
if (typeof x === 'number' && typeof k !== 'number') { | ||
// swap arguments | ||
return hasLength(k, x); | ||
} | ||
return (Array.isArray(x) || isString(x)) && x.length === k; | ||
@@ -781,3 +785,3 @@ } | ||
emptyObject: isEmptyObject, | ||
length: hasLength, | ||
length: curry2(hasLength), | ||
floatNumber: isFloat, | ||
@@ -784,0 +788,0 @@ intNumber: isInteger, |
@@ -5,2 +5,2 @@ /*! check-more-types - v0.0.0 | ||
!function(){"use strict";function a(a,b){return function(c){if(b&&arguments.length>2)throw new Error("Curry2 function "+a.name+" called with too many arguments "+arguments.length);return 2===arguments.length?a(arguments[0],arguments[1]):function(b){return a(c,b)}}}function b(a){return"function"==typeof a}function c(a){return"string"==typeof a}function d(a){return c(a)&&a}function e(a){return"object"==typeof a&&!Array.isArray(a)&&!j(a)&&!m(a)}function f(a){return e(a)&&0===Object.keys(a).length}function g(a){return"number"==typeof a&&!isNaN(a)&&a!==1/0&&a!==-(1/0)}function h(a){return g(a)&&a%1===0}function i(a){return g(a)&&a%1!==0}function j(a){return null===a}function k(a){return g(a)&&a>0}function l(a){return g(a)&&0>a}function m(a){return a instanceof Date}function n(a){return a instanceof RegExp}function o(a,b){return a instanceof b}function p(a,b){return(Array.isArray(a)||c(a))&&a.length===b}function q(a){return a>=0}function r(a,b){return c(a)&&c(b)&&0===b.indexOf(a)}function s(a,b){return typeof b===a}function t(a){return c(a)&&(da(a)||ea(a))}function u(a){var b,c;for(b in a)if(a.hasOwnProperty(b)){if(c=a[b],e(c)&&u(c)===!1)return!1;if(c===!1)return!1}return!0}function v(a,c){var d,f,g={};for(d in c)c.hasOwnProperty(d)&&(f=c[d],b(f)?g[d]=f(a[d]):e(f)&&(g[d]=v(a[d],f)));return g}function w(a){return"undefined"!=typeof a}function x(a){return fa.date(a)&&fa.number(Number(a))}function y(a){return fa.unemptyString(a)&&/^\d+\.\d+\.\d+$/.test(a)}function z(a){var b=typeof a;return"number"===b||"boolean"===b||"string"===b}function A(a){return"number"==typeof a&&0===a}function B(a,b){return a===b}function C(a,b){return w(a)&&J(a,"length")&&b>=0&&b<a.length}function D(a,b){return typeof a==typeof b&&a&&b&&a.length===b.length}function E(a){if(!fa.array(a))return!1;if(!a.length)return!0;var b=a[0];return a.every(function(a){return a===b})}function F(a,b){return fa.verify.array(a,"expected an array"),-1!==a.indexOf(b)}function G(a){return fa.unemptyString(a)&&/^git@/.test(a)}function H(a){return 0===a||1===a}function I(a){return"boolean"==typeof a}function J(a,b){if(2!==arguments.length)throw new Error("Expected two arguments to check.has, got only "+arguments.length);return Boolean(a&&b&&"string"==typeof b&&"undefined"!=typeof a[b])}function K(a){return fa.string(a)&&a.toLowerCase()===a}function L(a){return fa.array(a)&&a.length>0}function M(a,b){return fa.array(b)&&b.every(a)}function N(a,b){return fa.verify.array(b,"expected array to find bad items"),b.filter(aa(a))}function O(a,b){var c=fa.array(a)&&a.every(fa.string);return c&&fa.bool(b)&&b?a.every(fa.lowerCase):c}function P(a,b){return fa.array(a)&&a.every(function(a){return fa.arrayOfStrings(a,b)})}function Q(a,b){return fa.verify.fn(fa.every,"missing check.every method"),fa.verify.fn(fa.map,"missing check.map method"),fa.verify.object(a,"missing object to check"),fa.verify.object(b,"missing predicates object"),Object.keys(b).forEach(function(a){if(!fa.fn(b[a]))throw new Error("not a predicate function for "+a+" but "+b[a])}),fa.every(fa.map(a,b))}function R(a,b){return Q(b,a)}function S(a,b){fa.verify.fn(a,"expected function that raises");try{a()}catch(c){return"undefined"==typeof b?!0:"function"==typeof b?b(c):!1}return!1}function T(a){return""===a}function U(a){var b="string"==typeof a||Array.isArray(a);return b?!a.length:a instanceof Object?!Object.keys(a).length:!1}function V(a){var b="string"==typeof a||Array.isArray(a);return b?a.length:a instanceof Object?Object.keys(a).length:!0}function W(a){return fa.number(a)&&a>=0&&1>=a}function X(a){return fa.string(a)&&ga.test(a)}function Y(a){return fa.string(a)&&40===a.length&&ha.test(a)}function Z(a){return fa.string(a)&&7===a.length&&ia.test(a)}function $(){var a=Array.prototype.slice.call(arguments,0);if(!a.length)throw new Error("empty list of arguments to or");return function(){var b=Array.prototype.slice.call(arguments,0);return a.some(function(a){try{return fa.fn(a)?a.apply(null,b):Boolean(a)}catch(c){return!1}})}}function _(){var a=Array.prototype.slice.call(arguments,0);if(!a.length)throw new Error("empty list of arguments to or");return function(){var b=Array.prototype.slice.call(arguments,0);return a.every(function(a){return fa.fn(a)?a.apply(null,b):Boolean(a)})}}function aa(a){return function(){return!a.apply(null,arguments)}}function ba(a){return fa.object(a)&&la(a)}function ca(a,b){return a===b}if("function"!=typeof Function.prototype.bind)throw new Error("Missing Function.prototype.bind, please load es5-shim first");var da=r.bind(null,"http://"),ea=r.bind(null,"https://"),fa={maybe:{},verify:{},not:{},every:u,map:v},ga=/^#(?:[0-9a-fA-F]{3}){1,2}$/,ha=/^[0-9a-f]{40}$/,ia=/^[0-9a-f]{7}$/;if(!fa.defend){var ja=function(a,b,c){fa.verify.fn(a,"expected a function"),fa.verify.array(b,"expected list of predicates"),fa.verify.defined(c,"missing args");var d=0,e=0,f=b.length;for(d=0;f>d;d+=1){var g=b[d];if(fa.fn(g)){if(!g.call(null,c[e])){var h="Argument "+(e+1)+": "+c[e]+" does not pass predicate";throw fa.unemptyString(b[d+1])&&(h+=": "+b[d+1]),new Error(h)}e+=1}}return a.apply(null,c)};fa.defend=function(a){var b=Array.prototype.slice.call(arguments,1);return function(){return ja(a,b,arguments)}}}fa.mixin||(fa.mixin=function(a,f){function g(a,c,f){if(!e(a))throw new Error("missing object "+a);if(!d(c))throw new Error("missing name");if(!b(f))throw new Error("missing function");a[c]||(a[c]=f)}function h(a){return function(){return!fa.defined(arguments[0])||fa.nulled(arguments[0])?!0:a.apply(null,arguments)}}function i(a,b){return function(){var c;if(a.apply(null,arguments)===!1)throw c=arguments[arguments.length-1],new Error(fa.unemptyString(c)?c:b)}}if(c(a)&&b(f)){var j=a;a=f,f=j}if(!b(a))throw new Error("expected predicate function");if(d(f)||(f=a.name),!d(f))throw new Error("predicate function missing name\n"+a.toString());g(fa,f,a),g(fa.maybe,f,h(a)),g(fa.not,f,aa(a)),g(fa.verify,f,i(a,f+" failed"))}),fa.then||(fa.then=function(a,b){return function(){var c="function"==typeof a?a.apply(null,arguments):a;return c?b.apply(null,arguments):void 0}});var ka={then:b};ka["catch"]=b,ka["finally"]=b;var la=R.bind(null,ka),ma={nulled:j,fn:b,string:c,unemptyString:d,object:e,number:g,array:Array.isArray,positiveNumber:k,negativeNumber:l,positive:k,negative:l,defined:w,same:B,allSame:E,bit:H,bool:I,has:J,lowerCase:K,unemptyArray:L,arrayOfStrings:O,arrayOfArraysOfStrings:P,all:Q,schema:a(R),raises:S,empty:U,found:q,emptyString:T,unempty:V,unit:W,hexRgb:X,sameLength:D,commitId:Y,shortCommitId:Z,index:C,git:G,arrayOf:M,badItems:N,oneOf:a(F,!0),promise:ba,validDate:x,equal:a(ca),or:$,and:_,primitive:z,zero:A,date:m,regexp:n,instance:o,emptyObject:f,length:p,floatNumber:i,intNumber:h,startsWith:r,webUrl:t,semver:y,type:a(s)};Object.keys(ma).forEach(function(a){fa.mixin(ma[a],a)}),"object"==typeof module&&(module.exports=fa),"object"==typeof window&&(window.check=fa),"object"==typeof global&&(global.check=fa)}(); | ||
!function(){"use strict";function a(a,b){return function(c){if(b&&arguments.length>2)throw new Error("Curry2 function "+a.name+" called with too many arguments "+arguments.length);return 2===arguments.length?a(arguments[0],arguments[1]):function(b){return a(c,b)}}}function b(a){return"function"==typeof a}function c(a){return"string"==typeof a}function d(a){return c(a)&&a}function e(a){return"object"==typeof a&&!Array.isArray(a)&&!j(a)&&!m(a)}function f(a){return e(a)&&0===Object.keys(a).length}function g(a){return"number"==typeof a&&!isNaN(a)&&a!==1/0&&a!==-(1/0)}function h(a){return g(a)&&a%1===0}function i(a){return g(a)&&a%1!==0}function j(a){return null===a}function k(a){return g(a)&&a>0}function l(a){return g(a)&&0>a}function m(a){return a instanceof Date}function n(a){return a instanceof RegExp}function o(a,b){return a instanceof b}function p(a,b){return"number"==typeof a&&"number"!=typeof b?p(b,a):(Array.isArray(a)||c(a))&&a.length===b}function q(a){return a>=0}function r(a,b){return c(a)&&c(b)&&0===b.indexOf(a)}function s(a,b){return typeof b===a}function t(a){return c(a)&&(da(a)||ea(a))}function u(a){var b,c;for(b in a)if(a.hasOwnProperty(b)){if(c=a[b],e(c)&&u(c)===!1)return!1;if(c===!1)return!1}return!0}function v(a,c){var d,f,g={};for(d in c)c.hasOwnProperty(d)&&(f=c[d],b(f)?g[d]=f(a[d]):e(f)&&(g[d]=v(a[d],f)));return g}function w(a){return"undefined"!=typeof a}function x(a){return fa.date(a)&&fa.number(Number(a))}function y(a){return fa.unemptyString(a)&&/^\d+\.\d+\.\d+$/.test(a)}function z(a){var b=typeof a;return"number"===b||"boolean"===b||"string"===b}function A(a){return"number"==typeof a&&0===a}function B(a,b){return a===b}function C(a,b){return w(a)&&J(a,"length")&&b>=0&&b<a.length}function D(a,b){return typeof a==typeof b&&a&&b&&a.length===b.length}function E(a){if(!fa.array(a))return!1;if(!a.length)return!0;var b=a[0];return a.every(function(a){return a===b})}function F(a,b){return fa.verify.array(a,"expected an array"),-1!==a.indexOf(b)}function G(a){return fa.unemptyString(a)&&/^git@/.test(a)}function H(a){return 0===a||1===a}function I(a){return"boolean"==typeof a}function J(a,b){if(2!==arguments.length)throw new Error("Expected two arguments to check.has, got only "+arguments.length);return Boolean(a&&b&&"string"==typeof b&&"undefined"!=typeof a[b])}function K(a){return fa.string(a)&&a.toLowerCase()===a}function L(a){return fa.array(a)&&a.length>0}function M(a,b){return fa.array(b)&&b.every(a)}function N(a,b){return fa.verify.array(b,"expected array to find bad items"),b.filter(aa(a))}function O(a,b){var c=fa.array(a)&&a.every(fa.string);return c&&fa.bool(b)&&b?a.every(fa.lowerCase):c}function P(a,b){return fa.array(a)&&a.every(function(a){return fa.arrayOfStrings(a,b)})}function Q(a,b){return fa.verify.fn(fa.every,"missing check.every method"),fa.verify.fn(fa.map,"missing check.map method"),fa.verify.object(a,"missing object to check"),fa.verify.object(b,"missing predicates object"),Object.keys(b).forEach(function(a){if(!fa.fn(b[a]))throw new Error("not a predicate function for "+a+" but "+b[a])}),fa.every(fa.map(a,b))}function R(a,b){return Q(b,a)}function S(a,b){fa.verify.fn(a,"expected function that raises");try{a()}catch(c){return"undefined"==typeof b?!0:"function"==typeof b?b(c):!1}return!1}function T(a){return""===a}function U(a){var b="string"==typeof a||Array.isArray(a);return b?!a.length:a instanceof Object?!Object.keys(a).length:!1}function V(a){var b="string"==typeof a||Array.isArray(a);return b?a.length:a instanceof Object?Object.keys(a).length:!0}function W(a){return fa.number(a)&&a>=0&&1>=a}function X(a){return fa.string(a)&&ga.test(a)}function Y(a){return fa.string(a)&&40===a.length&&ha.test(a)}function Z(a){return fa.string(a)&&7===a.length&&ia.test(a)}function $(){var a=Array.prototype.slice.call(arguments,0);if(!a.length)throw new Error("empty list of arguments to or");return function(){var b=Array.prototype.slice.call(arguments,0);return a.some(function(a){try{return fa.fn(a)?a.apply(null,b):Boolean(a)}catch(c){return!1}})}}function _(){var a=Array.prototype.slice.call(arguments,0);if(!a.length)throw new Error("empty list of arguments to or");return function(){var b=Array.prototype.slice.call(arguments,0);return a.every(function(a){return fa.fn(a)?a.apply(null,b):Boolean(a)})}}function aa(a){return function(){return!a.apply(null,arguments)}}function ba(a){return fa.object(a)&&la(a)}function ca(a,b){return a===b}if("function"!=typeof Function.prototype.bind)throw new Error("Missing Function.prototype.bind, please load es5-shim first");var da=r.bind(null,"http://"),ea=r.bind(null,"https://"),fa={maybe:{},verify:{},not:{},every:u,map:v},ga=/^#(?:[0-9a-fA-F]{3}){1,2}$/,ha=/^[0-9a-f]{40}$/,ia=/^[0-9a-f]{7}$/;if(!fa.defend){var ja=function(a,b,c){fa.verify.fn(a,"expected a function"),fa.verify.array(b,"expected list of predicates"),fa.verify.defined(c,"missing args");var d=0,e=0,f=b.length;for(d=0;f>d;d+=1){var g=b[d];if(fa.fn(g)){if(!g.call(null,c[e])){var h="Argument "+(e+1)+": "+c[e]+" does not pass predicate";throw fa.unemptyString(b[d+1])&&(h+=": "+b[d+1]),new Error(h)}e+=1}}return a.apply(null,c)};fa.defend=function(a){var b=Array.prototype.slice.call(arguments,1);return function(){return ja(a,b,arguments)}}}fa.mixin||(fa.mixin=function(a,f){function g(a,c,f){if(!e(a))throw new Error("missing object "+a);if(!d(c))throw new Error("missing name");if(!b(f))throw new Error("missing function");a[c]||(a[c]=f)}function h(a){return function(){return!fa.defined(arguments[0])||fa.nulled(arguments[0])?!0:a.apply(null,arguments)}}function i(a,b){return function(){var c;if(a.apply(null,arguments)===!1)throw c=arguments[arguments.length-1],new Error(fa.unemptyString(c)?c:b)}}if(c(a)&&b(f)){var j=a;a=f,f=j}if(!b(a))throw new Error("expected predicate function");if(d(f)||(f=a.name),!d(f))throw new Error("predicate function missing name\n"+a.toString());g(fa,f,a),g(fa.maybe,f,h(a)),g(fa.not,f,aa(a)),g(fa.verify,f,i(a,f+" failed"))}),fa.then||(fa.then=function(a,b){return function(){var c="function"==typeof a?a.apply(null,arguments):a;return c?b.apply(null,arguments):void 0}});var ka={then:b};ka["catch"]=b,ka["finally"]=b;var la=R.bind(null,ka),ma={nulled:j,fn:b,string:c,unemptyString:d,object:e,number:g,array:Array.isArray,positiveNumber:k,negativeNumber:l,positive:k,negative:l,defined:w,same:B,allSame:E,bit:H,bool:I,has:J,lowerCase:K,unemptyArray:L,arrayOfStrings:O,arrayOfArraysOfStrings:P,all:Q,schema:a(R),raises:S,empty:U,found:q,emptyString:T,unempty:V,unit:W,hexRgb:X,sameLength:D,commitId:Y,shortCommitId:Z,index:C,git:G,arrayOf:M,badItems:N,oneOf:a(F,!0),promise:ba,validDate:x,equal:a(ca),or:$,and:_,primitive:z,zero:A,date:m,regexp:n,instance:o,emptyObject:f,length:a(p),floatNumber:i,intNumber:h,startsWith:r,webUrl:t,semver:y,type:a(s)};Object.keys(ma).forEach(function(a){fa.mixin(ma[a],a)}),"object"==typeof module&&(module.exports=fa),"object"==typeof window&&(window.check=fa),"object"==typeof global&&(global.check=fa)}(); |
{ | ||
"name": "check-more-types", | ||
"description": "Large collection of predicates.", | ||
"version": "2.8.0", | ||
"version": "2.9.0", | ||
"author": "Gleb Bahmutov <gleb.bahmutov@gmail.com>", | ||
@@ -6,0 +6,0 @@ "bugs": { |
@@ -67,2 +67,3 @@ # check-more-types | ||
* [check.same](#checksame) | ||
* [check.length](#checklength) | ||
* [check.sameLength](#checksamelength) | ||
@@ -242,2 +243,19 @@ * [check.allSame](#checkallsame) | ||
#### check.length | ||
Confirms length of a string or an Array. The function is curried and | ||
can guess the argument order | ||
```js | ||
check.length([1, 2], 2); // true | ||
check.length('foo', 3); // true | ||
// argument order | ||
check.length(3, 'foo'); // true | ||
// curried call | ||
check.length('foo')(3); // true | ||
check.length(3)('foo'); // true | ||
``` | ||
--- | ||
#### check.sameLength | ||
@@ -244,0 +262,0 @@ |
52792
742
861