clebert/typesystem

View on GitHub
README.md

Summary

Maintainability
Test Coverage
**THIS PROJECT IS NO LONGER MAINTAINED by clebert.**

# typesystem

> [Deprecated] Better type checking for JavaScript.

## Getting Started

### Installation

```sh
npm install typesystem --save
```

### Integration

```javascript
var ts = require('typesystem');
```

## API

### Overview

- [ts.isArguments(value)](#tsisargumentsvalue)
- [ts.isArray(value)](#tsisarrayvalue)
- [ts.isBoolean(value)](#tsisbooleanvalue)
- [ts.isBooleanObject(value)](#tsisbooleanobjectvalue)
- [ts.isDate(value)](#tsisdatevalue)
- [ts.isDocument(value)](#tsisdocumentvalue)
- [ts.isElement(value)](#tsiselementvalue)
- [ts.isError(value)](#tsiserrorvalue)
- [ts.isFloat(value)](#tsisfloatvalue)
- [ts.isFunction(value)](#tsisfunctionvalue)
- [ts.isGlobal(value)](#tsisglobalvalue)
- [ts.isInteger(value)](#tsisintegervalue)
- [ts.isNaN(value)](#tsisnanvalue)
- [ts.isNull(value)](#tsisnullvalue)
- [ts.isNullOrUndefined(value)](#tsisnullorundefinedvalue)
- [ts.isNumber(value)](#tsisnumbervalue)
- [ts.isNumberObject(value)](#tsisnumberobjectvalue)
- [ts.isObject(value)](#tsisobjectvalue)
- [ts.isPrimitive(value)](#tsisprimitivevalue)
- [ts.isReference(value)](#tsisreferencevalue)
- [ts.isRegExp(value)](#tsisregexpvalue)
- [ts.isString(value)](#tsisstringvalue)
- [ts.isStringObject(value)](#tsisstringobjectvalue)
- [ts.isSymbol(value)](#tsissymbolvalue)
- [ts.isUndefined(value)](#tsisundefinedvalue)

### ts.isArguments(value)

```javascript
ts.isArguments(arguments); // returns true
```

### ts.isArray(value)

```javascript
ts.isArray([]);          // returns true
ts.isArray(new Array()); // returns true
```

### ts.isBoolean(value)

```javascript
ts.isBoolean(true);  // returns true
ts.isBoolean(false); // returns true
```

### ts.isBooleanObject(value)

```javascript
ts.isBooleanObject(new Boolean()); // returns true
```

### ts.isDate(value)

```javascript
ts.isDate(new Date()); // returns true
```

### ts.isDocument(value)

```javascript
ts.isDocument(document); // returns true
```

### ts.isElement(value)

```javascript
ts.isElement(document.createElement('div'));  // returns true
ts.isElement(document.createElement('span')); // returns true
```

### ts.isError(value)

```javascript
ts.isError(new Error());          // returns true
ts.isError(new EvalError());      // returns true
ts.isError(new RangeError());     // returns true
ts.isError(new ReferenceError()); // returns true
ts.isError(new SyntaxError());    // returns true
ts.isError(new TypeError());      // returns true
ts.isError(new URIError());       // returns true
```

### ts.isFloat(value)

```javascript
ts.isFloat(1);                 // returns true
ts.isFloat(-1);                // returns true
ts.isFloat(0);                 // returns true
ts.isFloat(-0);                // returns true
ts.isFloat(Number.MAX_VALUE);  // returns true
ts.isFloat(-Number.MAX_VALUE); // returns true
ts.isFloat(Number.MIN_VALUE);  // returns true
ts.isFloat(-Number.MIN_VALUE); // returns true
```

### ts.isFunction(value)

```javascript
ts.isFunction(function () {}); // returns true
ts.isFunction(new Function()); // returns true
```

### ts.isGlobal(value)

```javascript
ts.isGlobal(global); // returns true
ts.isGlobal(window); // returns true
```

### ts.isInteger(value)

```javascript
ts.isInteger(1);                 // returns true
ts.isInteger(-1);                // returns true
ts.isInteger(0);                 // returns true
ts.isInteger(-0);                // returns true
ts.isInteger(Number.MAX_VALUE);  // returns true
ts.isInteger(-Number.MAX_VALUE); // returns true
```

### ts.isNaN(value)

```javascript
ts.isNaN(NaN); // returns true
```

### ts.isNull(value)

```javascript
ts.isNull(null); // returns true
```

### ts.isNullOrUndefined(value)

```javascript
ts.isNullOrUndefined(null);      // returns true
ts.isNullOrUndefined(undefined); // returns true
ts.isNullOrUndefined(void 0);    // returns true
```

### ts.isNumber(value)

```javascript
ts.isNumber(1);                 // returns true
ts.isNumber(-1);                // returns true
ts.isNumber(0);                 // returns true
ts.isNumber(-0);                // returns true
ts.isNumber(Number.MAX_VALUE);  // returns true
ts.isNumber(-Number.MAX_VALUE); // returns true
ts.isNumber(Number.MIN_VALUE);  // returns true
ts.isNumber(-Number.MIN_VALUE); // returns true
ts.isNumber(Infinity);          // returns true
ts.isNumber(-Infinity);         // returns true
ts.isNumber(NaN);               // returns true
```

### ts.isNumberObject(value)

```javascript
ts.isNumberObject(new Number()); // returns true
```

### ts.isObject(value)

```javascript
ts.isObject({});           // returns true
ts.isObject(new Object()); // returns true
```

### ts.isPrimitive(value)

```javascript
ts.isPrimitive(true);      // returns true
ts.isPrimitive(null);      // returns true
ts.isPrimitive(1);         // returns true
ts.isPrimitive('foo');     // returns true
ts.isPrimitive(Symbol());  // returns true
ts.isPrimitive(undefined); // returns true
```

### ts.isReference(value)

```javascript
ts.isReference(arguments);                     // returns true
ts.isReference([]);                            // returns true
ts.isReference(new Boolean());                 // returns true
ts.isReference(new Date());                    // returns true
ts.isReference(document);                      // returns true
ts.isReference(document.createElement('div')); // returns true
ts.isReference(new Error());                   // returns true
ts.isReference(function () {});                // returns true
ts.isReference(global);                        // returns true
ts.isReference(new Number());                  // returns true
ts.isReference({});                            // returns true
ts.isReference(/(?:)/);                        // returns true
ts.isReference(new String());                  // returns true
```

### ts.isRegExp(value)

```javascript
ts.isRegExp(/(?:)/);       // returns true
ts.isRegExp(new RegExp()); // returns true
```

### ts.isString(value)

```javascript
ts.isString('foo'); // returns true
ts.isString('');    // returns true
```

### ts.isStringObject(value)

```javascript
ts.isStringObject(new String()); // returns true
```

### ts.isSymbol(value)

```javascript
ts.isSymbol(Symbol()); // returns true
```

### ts.isUndefined(value)

```javascript
ts.isUndefined(undefined); // returns true
ts.isUndefined(void 0);    // returns true
```

## Running Tests

To run the test suite first install the development dependencies:

```sh
npm install
```

then run the tests:

```sh
npm test
```