chain-able
Version:
interfaces that describe their intentions.
26 lines (22 loc) • 2.23 kB
JavaScript
var ObjectKeys = require('./keys')
var getPrototypeOf = require('./getPrototypeOf')
var getOwnPropertyNames = Object.getOwnPropertyNames
var getOwnPropertySymbols = Object.getOwnPropertySymbols
/**
* @desc properties, property symbols, object keys
* ^ all again for prototype
*
* @param {Object} obj
* @return {[type]}
*/
function allProperties(obj) {
var proto = getPrototypeOf(obj)
return [].concat(
getOwnPropertyNames(obj),
getOwnPropertySymbols(obj),
ObjectKeys(obj),
proto ? allProperties(proto) : []
)
}
module.exports = allProperties
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMuanMiLCJzb3VyY2VzIjpbInByb3BzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE9iamVjdEtleXMgPSByZXF1aXJlKCcuL2tleXMnKVxuY29uc3QgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL2dldFByb3RvdHlwZU9mJylcblxuY29uc3QgZ2V0T3duUHJvcGVydHlOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzXG5jb25zdCBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzXG5cbi8qKlxuICogQGRlc2MgcHJvcGVydGllcywgcHJvcGVydHkgc3ltYm9scywgb2JqZWN0IGtleXNcbiAqICAgICAgIF4gYWxsIGFnYWluIGZvciBwcm90b3R5cGVcbiAqXG4gKiBAcGFyYW0gIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7W3R5cGVdfVxuICovXG5mdW5jdGlvbiBhbGxQcm9wZXJ0aWVzKG9iaikge1xuICBjb25zdCBwcm90byA9IGdldFByb3RvdHlwZU9mKG9iailcbiAgcmV0dXJuIFtdLmNvbmNhdChcbiAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaiksXG4gICAgZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iaiksXG4gICAgT2JqZWN0S2V5cyhvYmopLFxuICAgIHByb3RvID8gYWxsUHJvcGVydGllcyhwcm90bykgOiBbXVxuICApXG59XG5cbm1vZHVsZS5leHBvcnRzID0gYWxsUHJvcGVydGllc1xuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ3BDQSxHQUFLLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzs7QUFFbERBLEdBQUssQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CO0FBQ3REQSxHQUFLLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQjs7Ozs7Ozs7O0FBUzFELFNBQVMsYUFBYSxDQUFDLEdBQUcsRUFBRTtFQUMxQkEsR0FBSyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDO0VBQ2pDLE9BQU8sRUFBRSxDQUFDLE1BQU07SUFDZCxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7SUFDeEIscUJBQXFCLENBQUMsR0FBRyxDQUFDO0lBQzFCLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDZixLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7R0FDbEM7Q0FDRjs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLGFBQWE7In0=