## Objects

<dl>
<dt><a href="#array">array</a> : <code><a href="#object">object</a></code></dt>
<dd></dd>
<dt><a href="#function">function</a> : <code><a href="#object">object</a></code></dt>
<dd></dd>
<dt><a href="#html">html</a> : <code><a href="#object">object</a></code></dt>
<dd></dd>
<dt><a href="#object">object</a> : <code><a href="#object">object</a></code></dt>
<dd></dd>
<dt><a href="#string">string</a> : <code><a href="#object">object</a></code></dt>
<dd></dd>
<dt><a href="#stylesheet">stylesheet</a> : <code><a href="#object">object</a></code></dt>
<dd></dd>
</dl>

<a name="array"></a>

## array : [<code>object</code>](#object)
**Kind**: global namespace  

* [array](#array) : [<code>object</code>](#object)
    * [.chunkedForEach(ar, fn, chunkSize)](#array.chunkedForEach) ⇒ <code>Promise</code>
    * [.ensureArray(val)](#array.ensureArray)
    * [.module.exports(ar)](#array.module.exports) ⇒ <code>\*</code>
    * [.module.exports(ar)](#array.module.exports) ⇒ <code>Array</code>
    * [.head(ar)](#array.head) ⇒ <code>\*</code>
    * [.tail(ar)](#array.tail) ⇒ <code>T</code>
    * [.toArray(arraylike)](#array.toArray)
    * [.module.exports(ar)](#array.module.exports)

<a name="array.chunkedForEach"></a>

### array.chunkedForEach(ar, fn, chunkSize) ⇒ <code>Promise</code>
Splits an array into chunks and breaks the execution queue to ensure reactivity.

**Kind**: static method of [<code>array</code>](#array)  

| Param | Type |
| --- | --- |
| ar | <code>Array</code> | 
| fn | [<code>function</code>](#function) | 
| chunkSize | <code>number</code> | 

<a name="array.ensureArray"></a>

### array.ensureArray(val)
**Kind**: static method of [<code>array</code>](#array)  

| Param |
| --- |
| val | 

<a name="array.module.exports"></a>

### array.module.exports(ar) ⇒ <code>\*</code>
**Kind**: static method of [<code>array</code>](#array)  

| Param |
| --- |
| ar | 

<a name="array.module.exports"></a>

### array.module.exports(ar) ⇒ <code>Array</code>
Returns all values of an array, which are not undefined.

**Kind**: static method of [<code>array</code>](#array)  

| Param | Type |
| --- | --- |
| ar | <code>Array</code> | 

<a name="array.head"></a>

### array.head(ar) ⇒ <code>\*</code>
**Kind**: static method of [<code>array</code>](#array)  

| Param |
| --- |
| ar | 

<a name="array.tail"></a>

### array.tail(ar) ⇒ <code>T</code>
**Kind**: static method of [<code>array</code>](#array)  

| Param |
| --- |
| ar | 

<a name="array.toArray"></a>

### array.toArray(arraylike)
**Kind**: static method of [<code>array</code>](#array)  

| Param |
| --- |
| arraylike | 

<a name="array.module.exports"></a>

### array.module.exports(ar)
**Kind**: static method of [<code>array</code>](#array)  

| Param |
| --- |
| ar | 

<a name="function"></a>

## function : [<code>object</code>](#object)
**Kind**: global namespace  

* [function](#function) : [<code>object</code>](#object)
    * [.enqueueWithResults](#function.enqueueWithResults) ⇒
    * [.argsToArray(fn)](#function.argsToArray) ⇒ [<code>function</code>](#function)
    * [.checkTypes()](#function.checkTypes)
    * [.combine()](#function.combine) : [<code>function</code>](#function)
    * [.curry(fn)](#function.curry) ⇒ <code>curried</code>
    * [.module.exports(fn, timeout)](#function.module.exports) ⇒ [<code>function</code>](#function)
    * [.enqueue(promiseGenerators)](#function.enqueue) ⇒
    * [.indentity(arg)](#function.indentity)
    * [.measureTime(label, fn)](#function.measureTime)
    * [.memoize(fn, [timeout])](#function.memoize) ⇒ [<code>function</code>](#function)
    * [.module.exports()](#function.module.exports)
    * [.promisify(fn, context)](#function.promisify)

<a name="function.enqueueWithResults"></a>

### function.enqueueWithResults ⇒
Returns a function which executes promises one after another. The resulting function
 returns a promise, which gets filled with an array of the results of the single promises.

**Kind**: static constant of [<code>function</code>](#function)  
**Returns**: function which executes the promises  

| Param | Description |
| --- | --- |
| promiseGenerators | an array of functions which return a promise |

<a name="function.argsToArray"></a>

### function.argsToArray(fn) ⇒ [<code>function</code>](#function)
**Kind**: static method of [<code>function</code>](#function)  

| Param |
| --- |
| fn | 

<a name="function.checkTypes"></a>

### function.checkTypes()
**Kind**: static method of [<code>function</code>](#function)  
<a name="function.combine"></a>

### function.combine() : [<code>function</code>](#function)
**Kind**: static method of [<code>function</code>](#function)  
<a name="function.curry"></a>

### function.curry(fn) ⇒ <code>curried</code>
**Kind**: static method of [<code>function</code>](#function)  

| Param |
| --- |
| fn | 

<a name="function.module.exports"></a>

### function.module.exports(fn, timeout) ⇒ [<code>function</code>](#function)
Creates a function which debounces with the given timeout and resets the timer
on every function call.

The returned debounced function has a function property abort() which aborts the timer.

**Kind**: static method of [<code>function</code>](#function)  

| Param | Type |
| --- | --- |
| fn | [<code>function</code>](#function) | 
| timeout | <code>number</code> | 

<a name="function.enqueue"></a>

### function.enqueue(promiseGenerators) ⇒
returns a function which executes promises one after another

**Kind**: static method of [<code>function</code>](#function)  
**Returns**: function which executes the promises  

| Param | Description |
| --- | --- |
| promiseGenerators | an array of functions which return a promise |

<a name="function.indentity"></a>

### function.indentity(arg)
**Kind**: static method of [<code>function</code>](#function)  

| Param |
| --- |
| arg | 

<a name="function.measureTime"></a>

### function.measureTime(label, fn)
Takes a function and logs the time it takes on the console.

**Kind**: static method of [<code>function</code>](#function)  

| Param |
| --- |
| label | 
| fn | 

<a name="function.memoize"></a>

### function.memoize(fn, [timeout]) ⇒ [<code>function</code>](#function)
Caches a function result for a specified time.

**Kind**: static method of [<code>function</code>](#function)  

| Param | Type | Description |
| --- | --- | --- |
| fn | [<code>function</code>](#function) | the function of which the result should be cached |
| [timeout] | <code>number</code> | the time in ms which tells the time after which the results should be deleted from the cache |

<a name="function.module.exports"></a>

### function.module.exports()
**Kind**: static method of [<code>function</code>](#function)  
<a name="function.promisify"></a>

### function.promisify(fn, context)
**Kind**: static method of [<code>function</code>](#function)  

| Param |
| --- |
| fn | 
| context | 

<a name="html"></a>

## html : [<code>object</code>](#object)
**Kind**: global namespace  
<a name="html.createLinkTag"></a>

### html.createLinkTag(filename, mediaQuery) ⇒ [<code>string</code>](#string)
**Kind**: static method of [<code>html</code>](#html)  

| Param |
| --- |
| filename | 
| mediaQuery | 

<a name="object"></a>

## object : [<code>object</code>](#object)
**Kind**: global namespace  

* [object](#object) : [<code>object</code>](#object)
    * [.defaults(obj, values)](#object.defaults) ⇒ <code>Object</code>
    * [.extract(props)](#object.extract) ⇒ [<code>function</code>](#function)
    * [.filter(obj, pred)](#object.filter) ⇒ <code>\*</code>
    * [.fromArray(array, key, keep)](#object.fromArray) ⇒ <code>\*</code>
    * [.merge(targetObject, objects)](#object.merge) ⇒ <code>Object</code>
    * [.prop(prop)](#object.prop) ⇒ [<code>function</code>](#function)
    * [.removeProp(object)](#object.removeProp)

<a name="object.defaults"></a>

### object.defaults(obj, values) ⇒ <code>Object</code>
Populates an object with default values.

**Kind**: static method of [<code>object</code>](#object)  
**Returns**: <code>Object</code> - a new object with the default values and the object values  

| Param | Type | Description |
| --- | --- | --- |
| obj | <code>Object</code> | the object to populate the values on |
| values | <code>Object</code> | the default values to populate on the target object |

<a name="object.extract"></a>

### object.extract(props) ⇒ [<code>function</code>](#function)
Creates a function which extracts some properties out of an object.

**Kind**: static method of [<code>object</code>](#object)  

| Param | Type |
| --- | --- |
| props | [<code>Array.&lt;string&gt;</code>](#string) | 

<a name="object.filter"></a>

### object.filter(obj, pred) ⇒ <code>\*</code>
**Kind**: static method of [<code>object</code>](#object)  

| Param |
| --- |
| obj | 
| pred | 

<a name="object.fromArray"></a>

### object.fromArray(array, key, keep) ⇒ <code>\*</code>
Receives an array of objects and extracts an object with the given key as index. The key
must be a property of the array items. If the property is not found on the item, the item
is omitted.

**Kind**: static method of [<code>object</code>](#object)  

| Param | Type | Description |
| --- | --- | --- |
| array | <code>Array.&lt;Object&gt;</code> |  |
| key | [<code>string</code>](#string) |  |
| keep | <code>boolean</code> | should the extracted prop be kept in the result object |

<a name="object.merge"></a>

### object.merge(targetObject, objects) ⇒ <code>Object</code>
Merges too objects deeply.

**Kind**: static method of [<code>object</code>](#object)  

| Param | Type |
| --- | --- |
| targetObject | <code>Object</code> | 
| objects | <code>Array.&lt;Object&gt;</code> | 

<a name="object.prop"></a>

### object.prop(prop) ⇒ [<code>function</code>](#function)
Creates a function which returns a property of a passed object.

**Kind**: static method of [<code>object</code>](#object)  
**Returns**: [<code>function</code>](#function) - function to return a property from a passed object  

| Param | Type | Description |
| --- | --- | --- |
| prop | [<code>string</code>](#string) | the property to return from the passed object |

<a name="object.removeProp"></a>

### object.removeProp(object)
**Kind**: static method of [<code>object</code>](#object)  

| Param |
| --- |
| object | 

<a name="string"></a>

## string : [<code>object</code>](#object)
**Kind**: global namespace  

* [string](#string) : [<code>object</code>](#object)
    * [.append(str, append)](#string.append)
    * [.ciCompare(val1, val2)](#string.ciCompare)
    * [.toBool(val)](#string.toBool)

<a name="string.append"></a>

### string.append(str, append)
**Kind**: static method of [<code>string</code>](#string)  

| Param |
| --- |
| str | 
| append | 

<a name="string.ciCompare"></a>

### string.ciCompare(val1, val2)
**Kind**: static method of [<code>string</code>](#string)  

| Param |
| --- |
| val1 | 
| val2 | 

<a name="string.toBool"></a>

### string.toBool(val)
**Kind**: static method of [<code>string</code>](#string)  

| Param |
| --- |
| val | 

<a name="stylesheet"></a>

## stylesheet : [<code>object</code>](#object)
**Kind**: global namespace  

* [stylesheet](#stylesheet) : [<code>object</code>](#object)
    * [.createStylesheetAst(rules)](#stylesheet.createStylesheetAst) ⇒ <code>Object</code>
    * [.getRules(css)](#stylesheet.getRules)
    * [.isRuleType(type)](#stylesheet.isRuleType)

<a name="stylesheet.createStylesheetAst"></a>

### stylesheet.createStylesheetAst(rules) ⇒ <code>Object</code>
**Kind**: static method of [<code>stylesheet</code>](#stylesheet)  

| Param |
| --- |
| rules | 

<a name="stylesheet.getRules"></a>

### stylesheet.getRules(css)
**Kind**: static method of [<code>stylesheet</code>](#stylesheet)  

| Param |
| --- |
| css | 

<a name="stylesheet.isRuleType"></a>

### stylesheet.isRuleType(type)
**Kind**: static method of [<code>stylesheet</code>](#stylesheet)  

| Param |
| --- |
| type | 

