Utility functions for all environments. This replaces the underscore dependency.
* [utils](#module_utils) * _static_ * [.uniq(array, [iteratee])](#module_utils.uniq) ⇒Array
* [.isDate(d)](#module_utils.isDate) ⇒ boolean
* [.isRegExp(re)](#module_utils.isRegExp) ⇒ boolean
* _inner_
* [~isObject(arg)](#module_utils..isObject) ⇒ boolean
### utils.uniq(array, [iteratee]) ⇒ Array
Produces a duplicate-free version of the array, using === to test object equality. In particular only the first occurrence of each value is kept. If you want to compute unique items based on a transformation, pass an iteratee function.
Heavily inspired by [https://underscorejs.org/#uniq](https://underscorejs.org/#uniq).
**Kind**: static method of [utils
](#module_utils)
**Params**
- array Array
- [iteratee] function
- transformation applied to every element before checking for duplicates. This will not transform the items in the result.
### utils.isDate(d) ⇒boolean
Returns true if d is a Date.
Heavily inspired by [https://underscorejs.org/#isDate](https://underscorejs.org/#isDate).
**Kind**: static method of [utils
](#module_utils)
**Params**
- d \*
### utils.isRegExp(re) ⇒ boolean
Returns true if re is a RegExp.
Heavily inspired by [https://underscorejs.org/#isRegExp](https://underscorejs.org/#isRegExp).
**Kind**: static method of [utils
](#module_utils)
**Params**
- re \*
### utils~isObject(arg) ⇒ boolean
Returns true if arg is an Object. Note that JavaScript arrays and functions are objects, while (normal) strings and numbers are not.
Heavily inspired by [https://underscorejs.org/#isObject](https://underscorejs.org/#isObject).
**Kind**: inner method of [utils
](#module_utils)
**Params**
- arg \*