2.0.3 • Published 9 years ago

is-simple v2.0.3

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

IS (is-simple)

Quick, easy, and lightweight type checking

Why?

Type checking should be simple. This library does that, in as simple of a way that I can think of. It's easy to get tripped up with some of the neuances of JavaScript (such as typeof null === "object", or isNaN("wtf") === true), and this library aims to prevent that.

Installation

Node.js

npm install is-simple

In the browser

<script src="is.js"/>

Usage

// simple type checking
console.log(is.number(5)); // true
console.log(is.integer(2.5)); // false
console.log(is.function(console.log)); // true

// complex type checking
function Point(x, y) {
    this.x = x;
    this.y = y;
}

var point = new Point(2, 4);
var fakePoint = {x: 2, y: 4};

console.log(is.instanceOf(Point)(p)); // true
console.log(is.instanceOf(Point)(fakePoint)); // false

// even more complex type checking
console.log(is.arrayOf(is.number)([1, 2, 3])); // true
console.log(is.arrayOf(is.instanceOf(Point))([point])); // true

Using your own functions

You can easily extend IS by adding your own functions. These functions can also be passed in to is.arrayOf.

is.even = function (x) {
    return x % 2 === 0;
};

console.log(is.even(4)); // true
console.log(is.arrayOf(is.even)([2, 4, 6, 8])); // true

Matching Basic JavaScript Types

NOTE: typeof null === "object", but IS considers null to not be an object

matchesis.arrayis.numberis.booleanis.stringis.fnis.object
null, undefinednononononono
NaN, Infinitynoyesnononono
0, 2, -5noyesnononono
0.5, Math.PInoyesnononono
true, falsenonoyesnonono
"", "hello"nononoyesnono
[], 1, 2, 3yesnonononoyes
{}nononononoyes
function () {}, console, window, Objectnonononoyesyes

Special Types

NOTE: we treat "" as defined

matchesis.definedis.realNumberis.integer
null, undefinednonono
NaN, Infinitynonono
0, 2, -5yesyesyes
0.5, Math.PIyesyesno
true, falseyesnono
"", "hello"yesnono
[], 1, 2, 3yesnono
{}yesnono
function () {}, console, window, Objectyesnono

Specific Checks

is.nan is only true if passed in NaN. is.undefined is only true if passed in undefined.

Testing

npm install -g mocha
npm test

License

MIT

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.0.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.1

11 years ago