is-extended v0.0.10
is-extended
is-extended is a Javascript library that can be used standalone or incorporated into extended
var is = require("is-extended");Or
var myextended = require("extended")
.register(require("is-extended"));Installation
npm install is-extendedOr download the source (minified)
Usage
is-extended includes the following type coercion methods.
isFunction: Test if something is a functionisObject: Test if something is an object.isEmpty: Test if something is empty.isHash: Test if something is a hash.
is.isHash({}); //true
is.isHash(new Number(1)); //false
is.isObject({}); //true
is.isObject(new Number(1)); //trueisNumber: Test if something is a number.isString: Test if something is a string.isDate: Test if something is aDate.isArray: Test if something is anObjectisBoolean: Test if something is a boolean value.isUndefined: Test if something is strictly equal toundefined.isDefined: Test if something is strictly not equal toundefined.isUndefinedOrNull: Test if something is strictly equal tonullorundefined.isNull: Test if something is strictly equal tonull.isArguments: Test if something is anObjectinstanceOf: Test if something is anObjectisRegExp: Test if something is aRegExpisTrue: Test if something is strictly equal totrueisFalse: Test if something is strictly equal tofalseisNotNull: Test if something is strictly not equal tonull.
deepEqual
Tests if two object are deep equal.
is.deepEqual([1,2,3], [1,2,3]); //true
is([1,2,3]).deepEqual([1,2,3]); //true
is.deepEqual({ a: { b: "c"}}, {a : false}); //false
is({ a: { b: "c"}}).deepEqual({ a: { b: "c"}}); //trueisEq
Test if two objects are ==
isNeq
Test if two objects are !=
isSeq
Test if two objects are ===
isSneq
Test if two objects are !==
isIn
Test if an object is in a array.
is.isIn('a', ['a', 'b', 'c']); //true
is('a').isIn(['a', 'b', 'c']); //trueisNotIn
Test if something is not in an array.
is.isIn('d', ['a', 'b', 'c']); //true
is('d').isIn(['a', 'b', 'c']); //trueisLt
Check if a value is < a given value.
is.isLt(1, 2); //true
is("a").isLt("b"); //trueisLte
Check if a value is <= a given value.
is.isLte(2, 2); //true
is("a").isLte("b"); //trueisGt
Check if a value is > a given value.
is.isGt(2, 1); //true
is("b").isGt("a"); //trueisGte
Check if a value is >= a given value.
is.isGte(2, 2); //true
is("b").isLt("a"); //trueisLike
Check if a value is like a given regexp.
is.isLike("a", /a/); //true
is.isLike("a", "a"); //true
is(1).isLike(/\d/); //true
is.isLike(1, "\\d"); //trueisNotLike
Check if a value is not like a given regexp.
is.isNotLike("a", /\d/); //true
is("a").isNotLike("b"); //truecontains
Checks if an array contains a given value.
is.contains([1,2,3], 2); //true
is([1,2,3]).contains(2); //truenotContains
Checks if an array does not contain a given value.
is.notContains([1,2,3], 2); //true
is([1,2,3]).notContains(2); //trueCreating a custom tester.
To create a custom type tester you can use the tester method.
var tester = is.tester().isArray().isDate().isBoolean().tester();
tester([]); //true
tester(new Array()); //true
tester(new Date()); //true
tester(true); //true
tester(false); //true
tester(new Boolean()); //true
tester("hello"); //false
tester(); //false
tester(new String()); //false
tester({}); //false
tester(new Object()); //falseswitcher
The is-exteded switcher method allows you to create a structure that executes certain code when a value passes a test.
var mySwitcher = is.switcher()
.isLt(0, function (num) {
return num + " is lt 0";
})
.isLte(5, function (num) {
return num + " is gte 0 lte 5";
})
.isLte(10, function (num) {
return num + " is gt 5 lte 10";
})
.isGt(10, function (num) {
return num + " is gt 10";
})
.def(function (num) {
return num + " is unknown value";
})
.switcher();
for (var i = -1; i < 12; i++) {
console.log(mySwitcher(i));
}Outputs the following
-1 is lt 0
0 is gte 0 lte 5
1 is gte 0 lte 5
2 is gte 0 lte 5
3 is gte 0 lte 5
4 is gte 0 lte 5
5 is gte 0 lte 5
6 is gt 5 lte 10
7 is gt 5 lte 10
8 is gt 5 lte 10
9 is gt 5 lte 10
10 is gt 5 lte 10
11 is gt 10