foop
Version:
interfaces that describe their intentions.
31 lines (28 loc) • 2.78 kB
JavaScript
var curry = require('../fp/curry')
var isNill = require('../is/nullOrUndefined')
var hasOwnProperty = require('../native/objectHasOwnProperty')
/**
* @desc hasOwnProperty, first checking !nill
* @since 3.0.0
* @memberOf util
* @alias has
*
* @param {Object | *} haystack object
* @param {string | *} needle property
* @return {boolean} haystack != null & haystack[needle]
*
* {@link https://github.com/ramda/ramda/blob/v0.24.1/src/internal/_has.js ramda-has}
* @see {@link ramda-has}
*
* @example
*
* hasOwnPropertyNotNill({eh: true}, 'eh') //=> true
* hasOwnPropertyNotNill({eh: true}, 'nope') //=> false
*
*/
var hasOwnPropertyNotNill = function (haystack, needle) { return !isNill(haystack) && hasOwnProperty.call(haystack, needle); }
module.exports = curry(2, hasOwnPropertyNotNill)
// function(obj, key) {
// return key in obj
// }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzT3duUHJvcGVydHkuanMiLCJzb3VyY2VzIjpbImhhc093blByb3BlcnR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGN1cnJ5ID0gcmVxdWlyZSgnLi4vZnAvY3VycnknKVxuY29uc3QgaXNOaWxsID0gcmVxdWlyZSgnLi4vaXMvbnVsbE9yVW5kZWZpbmVkJylcbmNvbnN0IGhhc093blByb3BlcnR5ID0gcmVxdWlyZSgnLi4vbmF0aXZlL29iamVjdEhhc093blByb3BlcnR5JylcblxuLyoqXG4gKiBAZGVzYyBoYXNPd25Qcm9wZXJ0eSwgZmlyc3QgY2hlY2tpbmcgIW5pbGxcbiAqIEBzaW5jZSAzLjAuMFxuICogQG1lbWJlck9mIHV0aWxcbiAqIEBhbGlhcyBoYXNcbiAqXG4gKiBAcGFyYW0gIHtPYmplY3QgfCAqfSBoYXlzdGFjayBvYmplY3RcbiAqIEBwYXJhbSAge3N0cmluZyB8ICp9IG5lZWRsZSBwcm9wZXJ0eVxuICogQHJldHVybiB7Ym9vbGVhbn0gaGF5c3RhY2sgIT0gbnVsbCAmIGhheXN0YWNrW25lZWRsZV1cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3JhbWRhL3JhbWRhL2Jsb2IvdjAuMjQuMS9zcmMvaW50ZXJuYWwvX2hhcy5qcyByYW1kYS1oYXN9XG4gKiBAc2VlIHtAbGluayByYW1kYS1oYXN9XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgaGFzT3duUHJvcGVydHlOb3ROaWxsKHtlaDogdHJ1ZX0sICdlaCcpICAgLy89PiB0cnVlXG4gKiAgaGFzT3duUHJvcGVydHlOb3ROaWxsKHtlaDogdHJ1ZX0sICdub3BlJykgLy89PiBmYWxzZVxuICpcbiAqL1xuY29uc3QgaGFzT3duUHJvcGVydHlOb3ROaWxsID0gKGhheXN0YWNrLCBuZWVkbGUpID0+XG4gICFpc05pbGwoaGF5c3RhY2spICYmIGhhc093blByb3BlcnR5LmNhbGwoaGF5c3RhY2ssIG5lZWRsZSlcblxubW9kdWxlLmV4cG9ydHMgPSBjdXJyeSgyLCBoYXNPd25Qcm9wZXJ0eU5vdE5pbGwpXG4vLyBmdW5jdGlvbihvYmosIGtleSkge1xuLy8gICByZXR1cm4ga2V5IGluIG9ialxuLy8gfVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0FBQ3BDQSxHQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQztBQUMvQ0EsR0FBSyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCaEVBLEdBQUssQ0FBQyxxQkFBcUIsR0FBRyxTQUFBLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxBQUMvQyxTQUFBLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFBOztBQUU1RCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUM7Ozs7In0=