map-filter-reduce
Advanced tools
Comparing version 3.0.5 to 3.0.6
{ | ||
"name": "map-filter-reduce", | ||
"description": "", | ||
"version": "3.0.5", | ||
"version": "3.0.6", | ||
"homepage": "https://github.com/dominictarr/map-filter-reduce", | ||
@@ -6,0 +6,0 @@ "repository": { |
@@ -54,1 +54,4 @@ 'use strict' | ||
@@ -23,16 +23,25 @@ | ||
tape('ranges', function (t) { | ||
t.ok(u.isRange({$lt: 'a'})) | ||
t.equal(u.upper({$lt: 'a'}), 'a') | ||
t.equal(u.lower({$lt: 'a'}), null) | ||
t.equal(u.upper({$lte: 'a'}), 'a') | ||
t.equal(u.lower({$lte: 'a'}), null) | ||
function r(range, upper, lower) { | ||
t.ok(u.isRange(range), JSON.stringify(range) + ' is a range') | ||
t.deepEqual(u.upper(range), upper) | ||
t.deepEqual(u.lower(range), lower) | ||
} | ||
r({$lt: 'a'}, 'a', null) | ||
r({$lte: 'a'}, 'a', null) | ||
r({$gt: 'a'}, undefined, 'a') | ||
r({$gte: 'a'}, undefined, 'a') | ||
t.equal(u.upper({$gt: 'a'}), undefined) | ||
t.equal(u.lower({$gt: 'a'}), 'a',) | ||
t.equal(u.upper({$gte: 'a'}), undefined) | ||
t.equal(u.lower({$gte: 'a'}), 'a') | ||
r({$lt: 7}, 7, null) | ||
r({$lte: 7}, 7, null) | ||
r({$gt: 7}, undefined, 7) | ||
r({$gte: 7}, undefined, 7) | ||
r({$is: 'string'}, [], '') | ||
r({$is: 'boolean'}, true, false) | ||
r({$is: 'array'}, undefined, []) | ||
r({$is: 'undefined'}, undefined, undefined) | ||
r({$is: 'null'}, null, null) | ||
t.end() | ||
}) | ||
41
util.js
'use strict' | ||
//checkable types | ||
var types = { | ||
string: true, boolean: true, array: true, undefined: true, null: true | ||
} | ||
var upperByType = { | ||
string: [], | ||
boolean: true, | ||
array: undefined, | ||
undefined: undefined, | ||
null: null | ||
} | ||
var lowerByType = { | ||
string: '', | ||
boolean: false, | ||
array: [], | ||
undefined: undefined, | ||
null: null | ||
} | ||
function isString(s) { return 'string' === typeof s } | ||
@@ -11,3 +31,5 @@ | ||
function isBasic (p) { return isString(p) || isNumber(p) || isBoolean(p) } | ||
function isBasic (p) { | ||
return isString(p) || isNumber(p) || isBoolean(p) || isNull(p) || isUndefined(p) | ||
} | ||
@@ -20,2 +42,7 @@ function isFunction (f) { return 'function' === typeof f } | ||
function isUndefined (u) { return u === undefined } | ||
function isNull (n) { return n === null } | ||
function isBoolean (b) { return 'boolean' === typeof b } | ||
function isNumber(n) { return 'number' === typeof n} | ||
// [] or {} | ||
@@ -44,3 +71,4 @@ function isContainer (o) { | ||
// if(!isObject(v)) return false | ||
if(v.$prefix) return true | ||
if(v.$is) console.log(v, types[v.$is], types) | ||
if(v.$prefix || (v.$is && types[v.$is])) return true | ||
if(isArray(v)) return find(v, isRange) | ||
@@ -65,2 +93,3 @@ return isLtgt(v) | ||
if(has(v, '$lte')) return exports.LO | ||
if(has(v, '$is')) return lowerByType[v.$is] | ||
} | ||
@@ -70,2 +99,3 @@ if(isArray(v)) return v.map(lower) | ||
function upper (v) { | ||
@@ -80,2 +110,5 @@ if(isBasic(v)) return v | ||
if(has(v, '$gte')) return exports.HI | ||
if(has(v, '$is')) return upperByType[v.$is] | ||
} | ||
@@ -159,2 +192,5 @@ if(isArray(v)) return v.map(upper) | ||
exports.isNumber = isNumber | ||
exports.isBoolean = isBoolean | ||
exports.isNull = isNull | ||
exports.isUndefined = isUndefined | ||
exports.isInteger = isInteger | ||
@@ -186,1 +222,2 @@ exports.isBasic = isBasic | ||
34122
1059