util-ex
Version:
Browser-friendly enhanced util fully compatible with standard node.js
30 lines (29 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.keys = exports.getOwnPropertyNames = void 0;
let _keys, _getOwnPropertyNames;
// In IE the description property of an error is visible
// eslint-disable-next-line unicorn/error-message
if (new Error().hasOwnProperty('description')) {
const ERROR_PROPERTY_FILTER = function (obj, array) {
if (Object.prototype.toString.call(obj) === '[object Error]') {
array = array.filter(name => {
return name !== 'description' && name !== 'number';
});
}
return array;
};
_keys = function keys(object) {
return ERROR_PROPERTY_FILTER(object, Object.keys(object));
};
_getOwnPropertyNames = function getOwnPropertyNames(object) {
return ERROR_PROPERTY_FILTER(object, Object.getOwnPropertyNames(object));
};
} else {
_keys = Object.keys;
_getOwnPropertyNames = Object.getOwnPropertyNames;
}
const keys = exports.keys = _keys;
const getOwnPropertyNames = exports.getOwnPropertyNames = _getOwnPropertyNames;