type-enforcer
Version:
Type enforcement library for javascript
151 lines (105 loc) • 5 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="CssSize"></a>
## CssSize
**Kind**: global class
* [CssSize](#CssSize)
* [new CssSize([size])](#new_CssSize_new)
* _instance_
* [.units](#CssSize+units) ⇒ <code>String</code>
* [.value](#CssSize+value) ⇒ <code>Number</code>
* [.isAuto](#CssSize+isAuto) ⇒ <code>boolean</code>
* [.isFixed](#CssSize+isFixed) ⇒ <code>boolean</code>
* [.isPercent](#CssSize+isPercent) ⇒ <code>boolean</code>
* [.set(size)](#CssSize+set) ⇒ <code>this</code>
* [.toPixels([isNumber])](#CssSize+toPixels) ⇒ <code>Number</code> \| <code>String</code>
* [.isSame(size)](#CssSize+isSame) ⇒ <code>boolean</code>
* [.toString()](#CssSize+toString) ⇒ <code>String</code>
* [.element([element])](#CssSize+element) ⇒ <code>this</code> \| <code>Element</code>
* _static_
* [.isValid(value)](#CssSize.isValid) ⇒ <code>boolean</code>
<a name="new_CssSize_new"></a>
### new CssSize([size])
A class for css sizes
## Usage
``` javascript
import { CssSize } from 'type-enforcer';
```
| Param | Type | Default |
| --- | --- | --- |
| [size] | <code>String</code> | <code>0</code> |
<a name="CssSize+units"></a>
### cssSize.units ⇒ <code>String</code>
Get the units portion of the current value
**Kind**: instance property of [<code>CssSize</code>](#CssSize)
<a name="CssSize+value"></a>
### cssSize.value ⇒ <code>Number</code>
Get the numeric portion of the current value
**Kind**: instance property of [<code>CssSize</code>](#CssSize)
<a name="CssSize+isAuto"></a>
### cssSize.isAuto ⇒ <code>boolean</code>
Determine if the current value is 'auto'
**Kind**: instance property of [<code>CssSize</code>](#CssSize)
<a name="CssSize+isFixed"></a>
### cssSize.isFixed ⇒ <code>boolean</code>
Determine if the current value is a fixed size
**Kind**: instance property of [<code>CssSize</code>](#CssSize)
<a name="CssSize+isPercent"></a>
### cssSize.isPercent ⇒ <code>boolean</code>
Determine if the current value is a percent size
**Kind**: instance property of [<code>CssSize</code>](#CssSize)
<a name="CssSize+set"></a>
### cssSize.set(size) ⇒ <code>this</code>
Set the value
**Kind**: instance method of [<code>CssSize</code>](#CssSize)
| Param | Type | Description |
| --- | --- | --- |
| size | <code>String</code> | A valid css size, ie '32px', '1rem', 'auto', etc. |
<a name="CssSize+toPixels"></a>
### cssSize.toPixels([isNumber]) ⇒ <code>Number</code> \| <code>String</code>
Get the pixel equivalent of the current value
**Kind**: instance method of [<code>CssSize</code>](#CssSize)
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| [isNumber] | <code>boolean</code> | <code>false</code> | If true then return a number, else a string with 'px' on the end. |
<a name="CssSize+isSame"></a>
### cssSize.isSame(size) ⇒ <code>boolean</code>
Determine if another size is equivalent to this one
**Kind**: instance method of [<code>CssSize</code>](#CssSize)
| Param | Type |
| --- | --- |
| size | [<code>CssSize</code>](#CssSize) \| <code>String</code> |
<a name="CssSize+toString"></a>
### cssSize.toString() ⇒ <code>String</code>
Get the current value as a string
**Kind**: instance method of [<code>CssSize</code>](#CssSize)
<a name="CssSize+element"></a>
### cssSize.element([element]) ⇒ <code>this</code> \| <code>Element</code>
Set the element to measure font based units against
**Kind**: instance method of [<code>CssSize</code>](#CssSize)
| Param | Type | Description |
| --- | --- | --- |
| [element] | <code>Element</code> | A DOM element |
<a name="CssSize.isValid"></a>
### CssSize.isValid(value) ⇒ <code>boolean</code>
Determine if something is a valid css size
**Kind**: static method of [<code>CssSize</code>](#CssSize)
| 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