# Util

Namespace for utility functions.

# Util.identity

Util.identity = a => a

No op function.

# Util.castArray()

Util.castArray(value) // -> Array

Params

  • {Array | any} value - If not an array, wrap value in an array

# Util.clamp()

Util.clamp(min, max, v) // -> Number

Clamp value v between specified limits

Params

  • {Number} min
  • {Number} max
  • {Number} v - Value to be clamped

# Util.filterObjectValues()

Util.filterObjectValues(obj, fn) // -> Object

Return an object with properties filtered by filter function.

Params

  • {Object} obj
  • {Function : (value, key) => bool} fn - The filter function

# Util.getIntersectingPaths()

Util.getIntersectingPaths(first, second) // -> Array

Return a list of keys that both objects share.

Params

  • {Object} first
  • {Object} second

# Util.cloneDeep()

Util.cloneDeep(value) // -> Object | Array | Function

Perform a deep clone of value.

Params

  • {any} value - Value to clone

# Util.combineEasing()

Util.combineEasing(...easings) // -> Function

Combine all specified easing functions such that the result is an evenly spaced piecewise combination.

# Util.isObjectLike()

Util.isObjectLike(value) // -> Boolean

Check if a value is typeof object.

Params

  • {any} value - Value to check

# Util.isPlainObject()

Util.isPlainObject(value) // -> Boolean

Check if a value is a plain object.

Params

  • {any} value - Value to check

# Util.invLerp()

Util.invLerp(from, to, x) // -> Number

Returns the fraction that x is between from and to.

Params

  • {Number} from
  • {Number} to
  • {Number} x - Value between [from, to]

# Util.invLerpClamped()

Util.invLerpClamped(from, to, x) // -> Number

Clamps the output of Util.invLerp() between [0, 1].

Params

  • {Number} from
  • {Number} to
  • {Number} x - Value between [from, to]

# Util.lerp()

Util.lerp(from, to, t) // -> Number

Returns the interpolated value between two numbers.

Params

  • {Number} from
  • {Number} to
  • {Number} t - Value between [0, 1]

# Util.lerpClamped()

Util.lerpClamped(from, to, t) // -> Number

Clamps the output of Util.lerp() between [min, max].

Params

  • {Number} from
  • {Number} to
  • {Number} t - Value between [0, 1]

# Util.mapProperties()

Util.mapProperties(obj, fn) // -> Object

Return an object with properties mapped by a mapping function.

Params

  • {Object} obj
  • {Function : (value, key) => any} fn - The mapping function

# Util.mergeIntersecting()

Util.mergeIntersecting(first, second) // -> Object

Merge properties from the second object into the first, but only take properties that are present in the first.

Params

  • {Object} first
  • {Object} second

# Util.now()

Util.now() // -> Number

Get the current time from performance.now or process.hrtime.

# Util.pick()

Util.pick(obj, keys) // -> Object

Return an object only containing specified keys.

Params

  • {Object} obj
  • {String[]} keys - Array of keys

# Util.pull()

Util.pull(arr, item) // -> arr

Remove item from array if present and return the modified array.

Params

  • {Array} arr
  • {any} item - The item to remove

# Util.sanitizedObject()

Util.sanitizedObject(obj) // -> Object

Remove all keys from object that have undefined values.

Params

  • {Object} obj

# Util.shortestModDist()

Util.shortestModDist(a0, a1, modulo) // -> Number

Get the shortest distance between a0 and a1 on a ring of mod modulo.

Params

  • {Number} a0
  • {Number} a1
  • {Number} modulo

# Util.sortedIndex()

Util.sortedIndex(array, value) // -> Number
Util.sortedIndex(array, value, callback) // -> Number
Util.sortedIndex(array, value, retHighest) // -> Number
Util.sortedIndex(array, value, callback, retHighest) // -> Number

Implementation of lodash.sortedIndex (opens new window).

Last Updated: 9/14/2021, 5:49:55 PM