type-enforcer
Version:
Type enforcement library for javascript
148 lines (102 loc) • 4.36 kB
Markdown
# type-enforcer
[![npm][npm]][npm-url]
[![build][build]][build-url]
[](https://coveralls.io/github/DarrenPaulWright/type-enforcer?branch=master)
[![deps][deps]][deps-url]
[![size][size]][size-url]
[](https://snyk.io/test/github/DarrenPaulWright/type-enforcer?targetFile=package.json)
Type enforcement library for javascript
<a name="Vector"></a>
## Vector
**Kind**: global class
* [Vector](#Vector)
* [new Vector([start], [end])](#new_Vector_new)
* _instance_
* [.isSame(vector2)](#Vector+isSame) ⇒ <code>Boolean</code>
* [.invert()](#Vector+invert)
* [.toString()](#Vector+toString)
* [.start([point])](#Vector+start) ⇒ <code>this</code> \| <code>Point</code>
* [.end([point])](#Vector+end) ⇒ <code>this</code> \| <code>Point</code>
* [.length([length])](#Vector+length) ⇒ <code>this</code> \| <code>Number</code>
* [.angle([angle])](#Vector+angle) ⇒ <code>this</code> \| <code>Number</code>
* [.offset([point])](#Vector+offset) ⇒ <code>this</code> \| <code>Point</code>
* _static_
* [.isValid(value)](#Vector.isValid) ⇒ <code>boolean</code>
<a name="new_Vector_new"></a>
### new Vector([start], [end])
Vector model with helper types
## Usage
``` javascript
import { Vector } from 'type-enforcer';
```
| Param | Type |
| --- | --- |
| [start] | <code>Point</code> |
| [end] | <code>Point</code> |
<a name="Vector+isSame"></a>
### vector.isSame(vector2) ⇒ <code>Boolean</code>
Determine if another vector is the same as this one
**Kind**: instance method of [<code>Vector</code>](#Vector)
| Param | Type |
| --- | --- |
| vector2 | [<code>Vector</code>](#Vector) |
<a name="Vector+invert"></a>
### vector.invert()
Switch the start and end points
**Kind**: instance method of [<code>Vector</code>](#Vector)
<a name="Vector+toString"></a>
### vector.toString()
Get a string representation of the vector
**Kind**: instance method of [<code>Vector</code>](#Vector)
<a name="Vector+start"></a>
### vector.start([point]) ⇒ <code>this</code> \| <code>Point</code>
The start point
**Kind**: instance method of [<code>Vector</code>](#Vector)
| Param | Type |
| --- | --- |
| [point] | <code>Point</code> |
<a name="Vector+end"></a>
### vector.end([point]) ⇒ <code>this</code> \| <code>Point</code>
The end point
**Kind**: instance method of [<code>Vector</code>](#Vector)
| Param | Type |
| --- | --- |
| [point] | <code>Point</code> |
<a name="Vector+length"></a>
### vector.length([length]) ⇒ <code>this</code> \| <code>Number</code>
The length of the vector. Resets the end point.
**Kind**: instance method of [<code>Vector</code>](#Vector)
| Param | Type |
| --- | --- |
| [length] | <code>Number</code> |
<a name="Vector+angle"></a>
### vector.angle([angle]) ⇒ <code>this</code> \| <code>Number</code>
The angle from the start point to the end point. Resets the end point
**Kind**: instance method of [<code>Vector</code>](#Vector)
| Param | Type |
| --- | --- |
| [angle] | <code>Number</code> |
<a name="Vector+offset"></a>
### vector.offset([point]) ⇒ <code>this</code> \| <code>Point</code>
The x and y difference represented as a point
**Kind**: instance method of [<code>Vector</code>](#Vector)
| Param | Type |
| --- | --- |
| [point] | <code>Point</code> |
<a name="Vector.isValid"></a>
### Vector.isValid(value) ⇒ <code>boolean</code>
Determine if something is a valid Vector
**Kind**: static method of [<code>Vector</code>](#Vector)
| Param | Type |
| --- | --- |
| value | <code>\*</code> |
## License
[MIT](LICENSE.md)
[npm]: https://img.shields.io/npm/v/type-enforcer.svg
[npm-url]: https://npmjs.com/package/type-enforcer
[build]: https://travis-ci.org/DarrenPaulWright/type-enforcer.svg?branch=master
[build-url]: https://travis-ci.org/DarrenPaulWright/type-enforcer
[deps]: https://david-dm.org/darrenpaulwright/type-enforcer.svg
[deps-url]: https://david-dm.org/darrenpaulwright/type-enforcer
[size]: https://packagephobia.now.sh/badge?p=type-enforcer
[size-url]: https://packagephobia.now.sh/result?p=type-enforcer