npm install is-extended
is-extended is a Javascript library that can be used standalone or incorporated into extended
``javascript`
var is = require("is-extended");
Or
`javascript`
var myextended = require("extended")
.register(require("is-extended"));
``
npm install is-extended
Or download the source (minified)
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.
`javascript
is.isHash({}); //true
is.isHash(new Number(1)); //false
is.isObject({}); //true
is.isObject(new Number(1)); //true
`
* isNumber : Test if something is a number.isString
* : Test if something is a string.isDate
* : Test if something is a Date.isArray
* : Test if something is an ObjectisBoolean
* : Test if something is a boolean value.isUndefined
* : Test if something is strictly equal to undefined.isDefined
* : Test if something is strictly not equal to undefined.isUndefinedOrNull
* : Test if something is strictly equal to null or undefined.isNull
* : Test if something is strictly equal to null.isArguments
* : Test if something is an ObjectinstanceOf
* : Test if something is an ObjectisRegExp
* : Test if something is a RegExpisTrue
* : Test if something is strictly equal to trueisFalse
* : Test if something is strictly equal to falseisNotNull
* : Test if something is strictly not equal to null.
deepEqual
Tests if two object are deep equal.
`javascript
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"}}); //true
`
isEq
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.
`javascript
is.isIn('a', ['a', 'b', 'c']); //true
is('a').isIn(['a', 'b', 'c']); //true
`
isNotIn
Test if something is not in an array.
`javascript
is.isIn('d', ['a', 'b', 'c']); //true
is('d').isIn(['a', 'b', 'c']); //true
`
isLt
Check if a value is < a given value.
`javascript`
is.isLt(1, 2); //true
is("a").isLt("b"); //true
isLte
Check if a value is <= a given value.
`javascript`
is.isLte(2, 2); //true
is("a").isLte("b"); //true
isGt
Check if a value is > a given value.
`javascript`
is.isGt(2, 1); //true
is("b").isGt("a"); //true
isGte
Check if a value is >= a given value.
`javascript`
is.isGte(2, 2); //true
is("b").isLt("a"); //true
isLike
Check if a value is like a given regexp.
`javascript`
is.isLike("a", /a/); //true
is.isLike("a", "a"); //true
is(1).isLike(/\d/); //true
is.isLike(1, "\\d"); //true
isNotLike
Check if a value is not like a given regexp.
`javascript`
is.isNotLike("a", /\d/); //true
is("a").isNotLike("b"); //true
contains
Checks if an array contains a given value.
`javascript`
is.contains([1,2,3], 2); //true
is([1,2,3]).contains(2); //true
notContains
Checks if an array does not contain a given value.
`javascript`
is.notContains([1,2,3], 2); //true
is([1,2,3]).notContains(2); //true
To create a custom type tester you can use the tester method.
`javascript
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()); //false
`
The is-exteded switcher method allows you to create a structure that executes certain code when a value passes a test.
`javascript
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