function isEmpty (value) {
  if (typeof value === 'number') {
    return false
  }
  return (
    value === undefined ||
    value === '' ||
    value === null ||
    value === false ||
    (
      Array.isArray(value) && !value.some(v => !isEmpty(v))
    ) ||
    (
      (value && !Array.isArray(value) && typeof value === 'object' && isEmpty(Object.values(value)))
    )
  )
}
Determines if a given value is considered "empty"
@param {any} value