UNPKG

foop

Version:

interfaces that describe their intentions.

42 lines (40 loc) 3.01 kB
var propertyIsEnumerable = require('../native/propertyIsEnumerable') var curry = require('../fp/curry') /** * @desc object at property is enumerable * @memberOf is * @since 3.0.0 * * @param {Object | *} obj * @param {string | *} prop * @return {boolean} obj[prop] is enumerable * * @func * @name isEnumerable * @type {Function} * * {@link https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable mozilla-propertyisenumerable} * @see {@link mozilla-propertyisenumerable} * * @TODO use fp/call * * @example * * const obj = {eh: true} * isEnumerable(obj, 'eh') * //=> true * * const objPropEnumerable = isEnumerable(obj) * objPropEnumerable('eh') * //=> true * * Object.defineProperty(obj, 'length', { * enumerable: false, * value: () => Object.keys(obj).length, * }) * isEnumerable(obj, 'length') * //=> false * */ module.exports = curry(2, function (obj, prop) { return propertyIsEnumerable.call(obj, prop); }) //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bWVyYWJsZS5qcyIsInNvdXJjZXMiOlsiZW51bWVyYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHJlcXVpcmUoJy4uL25hdGl2ZS9wcm9wZXJ0eUlzRW51bWVyYWJsZScpXG5jb25zdCBjdXJyeSA9IHJlcXVpcmUoJy4uL2ZwL2N1cnJ5JylcblxuLyoqXG4gKiBAZGVzYyBvYmplY3QgYXQgcHJvcGVydHkgaXMgZW51bWVyYWJsZVxuICogQG1lbWJlck9mIGlzXG4gKiBAc2luY2UgMy4wLjBcbiAqXG4gKiBAcGFyYW0ge09iamVjdCB8ICp9IG9ialxuICogQHBhcmFtIHtzdHJpbmcgfCAqfSBwcm9wXG4gKiBAcmV0dXJuIHtib29sZWFufSBvYmpbcHJvcF0gaXMgZW51bWVyYWJsZVxuICpcbiAqIEBmdW5jXG4gKiBAbmFtZSBpc0VudW1lcmFibGVcbiAqIEB0eXBlIHtGdW5jdGlvbn1cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L3Byb3BlcnR5SXNFbnVtZXJhYmxlIG1vemlsbGEtcHJvcGVydHlpc2VudW1lcmFibGV9XG4gKiBAc2VlIHtAbGluayBtb3ppbGxhLXByb3BlcnR5aXNlbnVtZXJhYmxlfVxuICpcbiAqIEBUT0RPIHVzZSBmcC9jYWxsXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgIGNvbnN0IG9iaiA9IHtlaDogdHJ1ZX1cbiAqICAgaXNFbnVtZXJhYmxlKG9iaiwgJ2VoJylcbiAqICAgLy89PiB0cnVlXG4gKlxuICogICBjb25zdCBvYmpQcm9wRW51bWVyYWJsZSA9IGlzRW51bWVyYWJsZShvYmopXG4gKiAgIG9ialByb3BFbnVtZXJhYmxlKCdlaCcpXG4gKiAgIC8vPT4gdHJ1ZVxuICpcbiAqICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgJ2xlbmd0aCcsIHtcbiAqICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gKiAgICAgIHZhbHVlOiAoKSA9PiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCxcbiAqICAgfSlcbiAqICAgaXNFbnVtZXJhYmxlKG9iaiwgJ2xlbmd0aCcpXG4gKiAgIC8vPT4gZmFsc2VcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gY3VycnkoMiwgKG9iaiwgcHJvcCkgPT4gcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChvYmosIHByb3ApKVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztBQUN0RUEsR0FBSyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNDcEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQUEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEFBQUcsU0FBQSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFBLENBQUM7In0=