foop
Version:
interfaces that describe their intentions.
34 lines (31 loc) • 2.28 kB
JavaScript
var isNull = require('./null')
var isIn = require('./in')
/**
* @TODO can depreciate now that there is safety in `isIn`
*
* @desc isIn, but first checks it is not null
* @since 5.0.0
* @memberOf is
*
* @param {Object} obj object to check
* @param {any} prop property to check in object
* @return {boolean}
*
* {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L1367 underscore-has}
* @see {@link underscore-has}
*
* @extends isNull
* @extends isIn
*
* @example
*
* hasIn({}, 'eh') //=> false
* hasIn(null, 'eh') //=> false
* hasIn({eh: true}, 'eh') //=> true
*
*/
function hasIn(obj, prop) {
return !isNull(obj) && isIn(obj, prop)
}
module.exports = hasIn
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSW4uanMiLCJzb3VyY2VzIjpbImhhc0luLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTnVsbCA9IHJlcXVpcmUoJy4vbnVsbCcpXG5jb25zdCBpc0luID0gcmVxdWlyZSgnLi9pbicpXG5cbi8qKlxuICogQFRPRE8gY2FuIGRlcHJlY2lhdGUgbm93IHRoYXQgdGhlcmUgaXMgc2FmZXR5IGluIGBpc0luYFxuICpcbiAqIEBkZXNjIGlzSW4sIGJ1dCBmaXJzdCBjaGVja3MgaXQgaXMgbm90IG51bGxcbiAqIEBzaW5jZSA1LjAuMFxuICogQG1lbWJlck9mIGlzXG4gKlxuICogQHBhcmFtICB7T2JqZWN0fSBvYmogb2JqZWN0IHRvIGNoZWNrXG4gKiBAcGFyYW0gIHthbnl9IHByb3AgcHJvcGVydHkgdG8gY2hlY2sgaW4gb2JqZWN0XG4gKiBAcmV0dXJuIHtib29sZWFufVxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvYmxvYi9tYXN0ZXIvdW5kZXJzY29yZS5qcyNMMTM2NyB1bmRlcnNjb3JlLWhhc31cbiAqIEBzZWUge0BsaW5rIHVuZGVyc2NvcmUtaGFzfVxuICpcbiAqIEBleHRlbmRzIGlzTnVsbFxuICogQGV4dGVuZHMgaXNJblxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogIGhhc0luKHt9LCAnZWgnKSAvLz0+IGZhbHNlXG4gKiAgaGFzSW4obnVsbCwgJ2VoJykgLy89PiBmYWxzZVxuICogIGhhc0luKHtlaDogdHJ1ZX0sICdlaCcpIC8vPT4gdHJ1ZVxuICpcbiAqL1xuZnVuY3Rpb24gaGFzSW4ob2JqLCBwcm9wKSB7XG4gIHJldHVybiAhaXNOdWxsKG9iaikgJiYgaXNJbihvYmosIHByb3ApXG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFzSW5cbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztBQUNoQ0EsR0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCNUIsU0FBUyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRTtFQUN4QixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO0NBQ3ZDOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSzsifQ==