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-extended
Or 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({});
is.isHash(new Number(1));
is.isObject({});
is.isObject(new Number(1));
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 Object
isBoolean
: 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 Object
instanceOf
: Test if something is an Object
isRegExp
: Test if something is a RegExp
isTrue
: Test if something is strictly equal to true
isFalse
: Test if something is strictly equal to false
isNotNull
: Test if something is strictly not equal to null
.
deepEqual
Tests if two object are deep equal.
is.deepEqual([1,2,3], [1,2,3]);
is([1,2,3]).deepEqual([1,2,3]);
is.deepEqual({ a: { b: "c"}}, {a : false});
is({ a: { b: "c"}}).deepEqual({ a: { b: "c"}});
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.
is.isIn('a', ['a', 'b', 'c']);
is('a').isIn(['a', 'b', 'c']);
isNotIn
Test if something is not in an array.
is.isIn('d', ['a', 'b', 'c']);
is('d').isIn(['a', 'b', 'c']);
isLt
Check if a value is <
a given value.
is.isLt(1, 2);
is("a").isLt("b");
isLte
Check if a value is <=
a given value.
is.isLte(2, 2);
is("a").isLte("b");
isGt
Check if a value is >
a given value.
is.isGt(2, 1);
is("b").isGt("a");
isGte
Check if a value is >=
a given value.
is.isGte(2, 2);
is("b").isLt("a");
isLike
Check if a value is like a given regexp.
is.isLike("a", /a/);
is.isLike("a", "a");
is(1).isLike(/\d/);
is.isLike(1, "\\d");
isNotLike
Check if a value is not like a given regexp.
is.isNotLike("a", /\d/);
is("a").isNotLike("b");
contains
Checks if an array contains a given value.
is.contains([1,2,3], 2);
is([1,2,3]).contains(2);
notContains
Checks if an array does not contain a given value.
is.notContains([1,2,3], 2);
is([1,2,3]).notContains(2);
containsAt
Checks if an array contains a given value at the specified index
is.contains([1,2,3], 2, 1);
is([1,2,3]).containsAt(2, 1);
notContainsAt
Checks if an array does not contain a given value at the specified index
is.notContains([1,2,3], 2, 0);
is([1,2,3]).notContains(2, 0);
has
Checks if a value has the specified property.
is.has([1,2,3], "length");
is.has({a: "a"}, "a");
is([1,2,3]).has("length");
is({a: "a"}).has("a");
notHas
Checks if an array does not contain a given value.
is.notHas([1,2,3], "someProperty");
is.notHas({a: "a"}, "b");
is([1,2,3]).notHas("someProperty");
is({a: "a"}).notHas("b");
isLength
Checks if a value has the specified length;
is.isLength([1,2,3], 3);
is.isLength("abc", 3);
is.isLength(function(a, b, c){}, 3);
is([1,2,3]).isLength(3);
is("abc").isLength(3);
is(function(a, b, c){}).isLength(3);
isNotLength
Checks if an value does not have the specified length.
is.isNotLength([1,2,3], 3);
is.isNotLength("abc", 3);
is.isNotLength(function(a, b, c){}, 3);
is([1,2,3]).isNotLength(3);
is("abc").isNotLength(3);
is(function(a, b, c){}).isNotLength(3);
Creating a custom tester.
To create a custom type tester you can use the tester
method.
var tester = is.tester().isArray().isDate().isBoolean().tester();
tester([]);
tester(new Array());
tester(new Date());
tester(true);
tester(false);
tester(new Boolean());
tester("hello");
tester();
tester(new String());
tester({});
tester(new Object());
switcher
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