function hasEmptyProperty(obj) {
  return Object.keys(obj)
    .map((key) => obj[key])
    .every(
      (keyObject) =>
        typeof keyObject === 'object' &&
        Object.keys(keyObject).every((key) => !(key in keyObject))
    );
}
/**
 * Checks if there is any properties of the input object which are an empty object
 * @param {object} obj - the object to check
 * @returns {boolean}
 */
Checks if there is any properties of the input object which are an empty object
@param {object} obj - the object to check
@returns {boolean}
Checks if there is any properties of the input object which are an empty object @param { object } obj - the object to check @returns { boolean }
function hasEmptyProperty(obj) {
  return Object.keys(obj)
    .map((key) => obj[key])
    .every(
      (keyObject) =>
        typeof keyObject === 'object' &&
        Object.keys(keyObject).every((key) => !(key in keyObject))
    );
}
function hasEmptyProperty ( obj ) { return Object . keys ( obj ) . map ( ( key ) => obj [ key ] ) . every ( ( keyObject ) => typeof keyObject === 'object' && Object . keys ( keyObject ) . every ( ( key ) => ! ( key in keyObject ) ) ) ; }
Checks if there is any properties of the input object which are an empty object
 @param {object} obj - the object to check
 @returns {boolean}
Checks if there is any properties of the input object which are an empty object @param { object } obj - the object to check @returns { boolean }