function isEmpty(value) {
  if (value == null) {
    return true;
  }
  if (Array.isArray(value) || typeof value === 'string') {
    return !value.length;
  }
  if (
    objectToString(value) === '[object Map]' ||
    objectToString(value) === '[object Set]'
  ) {
    return !value.size;
  }
  if (objectToString(value) === '[object Object]') {
    return !Object.keys(value).length;
  }
  return false;
}
Determines if a value is an empty collection (object, array, string, map, set)
@note this returns false for anything else.