foop
Version:
interfaces that describe their intentions.
48 lines (46 loc) • 3.19 kB
JavaScript
var ObjectKeys = require('../util/keys')
var size = require('../util/size')
var isObj = require('./obj')
var isEmpty = require('./empty')
/**
* @TODO @NOTE need to be more careful, needs to check for vanilla objects, not native ones since e.g. Error has no keys
*
* @param {*} x value
* @return {boolean} isObjWithKeys
*
* @since 3.0.0
* @memberOf is
* @func isObjWithKeys
* @see is/obj
* @see is/objWithKeys
* @see is/objStrict
* @see is/null
* @see is/empty
*
* @extends isObj
* @variation Object.keys(obj).length !== 0
*
* @example
*
* isObjWithKeys({eh: true})
* //=> true
* isObjWithKeys({})
* //=> false
* isObjWithKeys(new Object())
* //=> false
* isObjWithKeys(Object.create(null))
* //=> false
* isObjWithKeys(null)
* //=> false
* isObjWithKeys(new Set())
* //=> false
* isObjWithKeys(function() {})
* //=> false
* isObjWithKeys('')
* //=> false
* isObjWithKeys(1)
* //=> false
*
*/
module.exports = function (x) { return isObj(x) && ObjectKeys(x).length !== 0; } // !isEmpty(x)
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqV2l0aEtleXMuanMiLCJzb3VyY2VzIjpbIm9ialdpdGhLZXlzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi91dGlsL2tleXMnKVxuY29uc3Qgc2l6ZSA9IHJlcXVpcmUoJy4uL3V0aWwvc2l6ZScpXG5jb25zdCBpc09iaiA9IHJlcXVpcmUoJy4vb2JqJylcbmNvbnN0IGlzRW1wdHkgPSByZXF1aXJlKCcuL2VtcHR5JylcblxuLyoqXG4gKiBAVE9ETyBATk9URSBuZWVkIHRvIGJlIG1vcmUgY2FyZWZ1bCwgbmVlZHMgdG8gY2hlY2sgZm9yIHZhbmlsbGEgb2JqZWN0cywgbm90IG5hdGl2ZSBvbmVzIHNpbmNlIGUuZy4gRXJyb3IgaGFzIG5vIGtleXNcbiAqXG4gKiBAcGFyYW0geyp9IHggdmFsdWVcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGlzT2JqV2l0aEtleXNcbiAqXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBtZW1iZXJPZiBpc1xuICogQGZ1bmMgaXNPYmpXaXRoS2V5c1xuICogQHNlZSBpcy9vYmpcbiAqIEBzZWUgaXMvb2JqV2l0aEtleXNcbiAqIEBzZWUgaXMvb2JqU3RyaWN0XG4gKiBAc2VlIGlzL251bGxcbiAqIEBzZWUgaXMvZW1wdHlcbiAqXG4gKiBAZXh0ZW5kcyBpc09ialxuICogQHZhcmlhdGlvbiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCAhPT0gMFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIGlzT2JqV2l0aEtleXMoe2VoOiB0cnVlfSlcbiAqICAvLz0+IHRydWVcbiAqICBpc09ialdpdGhLZXlzKHt9KVxuICogIC8vPT4gZmFsc2VcbiAqICBpc09ialdpdGhLZXlzKG5ldyBPYmplY3QoKSlcbiAqICAvLz0+IGZhbHNlXG4gKiAgaXNPYmpXaXRoS2V5cyhPYmplY3QuY3JlYXRlKG51bGwpKVxuICogIC8vPT4gZmFsc2VcbiAqICBpc09ialdpdGhLZXlzKG51bGwpXG4gKiAgLy89PiBmYWxzZVxuICogIGlzT2JqV2l0aEtleXMobmV3IFNldCgpKVxuICogIC8vPT4gZmFsc2VcbiAqICBpc09ialdpdGhLZXlzKGZ1bmN0aW9uKCkge30pXG4gKiAgLy89PiBmYWxzZVxuICogIGlzT2JqV2l0aEtleXMoJycpXG4gKiAgLy89PiBmYWxzZVxuICogIGlzT2JqV2l0aEtleXMoMSlcbiAqICAvLz0+IGZhbHNlXG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHggPT4gaXNPYmooeCkgJiYgT2JqZWN0S2V5cyh4KS5sZW5ndGggIT09IDAgLy8gIWlzRW1wdHkoeClcbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUMxQ0EsR0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO0FBQ3BDQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDOUJBLEdBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMENsQyxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQUEsQ0FBQyxDQUFBLENBQUMsQUFBRyxTQUFBLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsR0FBQTsifQ==