UNPKG

foop

Version:

interfaces that describe their intentions.

68 lines (63 loc) 5.37 kB
var ENV_COMPAT = require('../env/compat') var hasOwnProperty = require('../util/hasOwnProperty') /** * Converts an object into an array of key, value arrays. Only the object's * own properties are used. * Note that the order of the output array is not guaranteed to be consistent * across different JS platforms. * * @since 5.0.0-beta.5 * @memberOf cast * * @param {Object|Array} obj The object to extract from * @return {Array<string, *>} An array of key, value arrays from the object's own properties. * * @alias objToArray * @alias objectToArray * @alias objToArr * @alias toEntries * * @func * @fork v0.4.0 * @category Object * @sig {String: *} -> [[String,*]] * * @TODO compat env version * * {@link https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#Polyfill mozilla-object-entries} * {@link https://github.com/lodash/lodash/blob/master/fromPairs.js lodash-from-pairs} * {@link https://github.com/ramda/ramda/blob/master/src/pair.js ramda-to-pairs} * {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L637 underscore-to-pairs} * @see {@link mozilla-object-entries} * @see {@link underscore-to-pairs} * @see {@link ramda-to-pairs} * @see {@link lodash-from-pairs} * @see fromPairs * @see util/hasOwnProperty * @see cast/mapToArray * * @example * * toPairs({a: 1, b: 2, c: 3}) * //=> [['a', 1], ['b', 2], ['c', 3]] * * toPairs([]) * //=> [['a', 1], ['b', 2], ['c', 3]] * */ module.exports = Object.entries if (ENV_COMPAT) { // if (!module.exports), // if there is no Object.entries, // but we want to force compat so module.exports = (function toPairs(obj) { var pairs = [] for (var prop in obj) { if (hasOwnProperty(prop, obj)) { pairs[pairs.length] = [prop, obj[prop]] } } return pairs }) } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9QYWlycy5qcyIsInNvdXJjZXMiOlsidG9QYWlycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBFTlZfQ09NUEFUID0gcmVxdWlyZSgnLi4vZW52L2NvbXBhdCcpXG5jb25zdCBoYXNPd25Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL3V0aWwvaGFzT3duUHJvcGVydHknKVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBpbnRvIGFuIGFycmF5IG9mIGtleSwgdmFsdWUgYXJyYXlzLiBPbmx5IHRoZSBvYmplY3Qnc1xuICogb3duIHByb3BlcnRpZXMgYXJlIHVzZWQuXG4gKiBOb3RlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgY29uc2lzdGVudFxuICogYWNyb3NzIGRpZmZlcmVudCBKUyBwbGF0Zm9ybXMuXG4gKlxuICogQHNpbmNlIDUuMC4wLWJldGEuNVxuICogQG1lbWJlck9mIGNhc3RcbiAqXG4gKiBAcGFyYW0ge09iamVjdHxBcnJheX0gb2JqIFRoZSBvYmplY3QgdG8gZXh0cmFjdCBmcm9tXG4gKiBAcmV0dXJuIHtBcnJheTxzdHJpbmcsICo+fSBBbiBhcnJheSBvZiBrZXksIHZhbHVlIGFycmF5cyBmcm9tIHRoZSBvYmplY3QncyBvd24gcHJvcGVydGllcy5cbiAqXG4gKiBAYWxpYXMgb2JqVG9BcnJheVxuICogQGFsaWFzIG9iamVjdFRvQXJyYXlcbiAqIEBhbGlhcyBvYmpUb0FyclxuICogQGFsaWFzIHRvRW50cmllc1xuICpcbiAqIEBmdW5jXG4gKiBAZm9yayB2MC40LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBzaWcge1N0cmluZzogKn0gLT4gW1tTdHJpbmcsKl1dXG4gKlxuICogQFRPRE8gY29tcGF0IGVudiB2ZXJzaW9uXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9lbnRyaWVzI1BvbHlmaWxsIG1vemlsbGEtb2JqZWN0LWVudHJpZXN9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi9tYXN0ZXIvZnJvbVBhaXJzLmpzIGxvZGFzaC1mcm9tLXBhaXJzfVxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9yYW1kYS9yYW1kYS9ibG9iL21hc3Rlci9zcmMvcGFpci5qcyByYW1kYS10by1wYWlyc31cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvYmxvYi9tYXN0ZXIvdW5kZXJzY29yZS5qcyNMNjM3IHVuZGVyc2NvcmUtdG8tcGFpcnN9XG4gKiBAc2VlIHtAbGluayBtb3ppbGxhLW9iamVjdC1lbnRyaWVzfVxuICogQHNlZSB7QGxpbmsgdW5kZXJzY29yZS10by1wYWlyc31cbiAqIEBzZWUge0BsaW5rIHJhbWRhLXRvLXBhaXJzfVxuICogQHNlZSB7QGxpbmsgbG9kYXNoLWZyb20tcGFpcnN9XG4gKiBAc2VlIGZyb21QYWlyc1xuICogQHNlZSB1dGlsL2hhc093blByb3BlcnR5XG4gKiBAc2VlIGNhc3QvbWFwVG9BcnJheVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICB0b1BhaXJzKHthOiAxLCBiOiAyLCBjOiAzfSlcbiAqICAgICAgLy89PiBbWydhJywgMV0sIFsnYicsIDJdLCBbJ2MnLCAzXV1cbiAqXG4gKiAgICAgIHRvUGFpcnMoW10pXG4gKiAgICAgIC8vPT4gW1snYScsIDFdLCBbJ2InLCAyXSwgWydjJywgM11dXG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5lbnRyaWVzXG5cbmlmIChFTlZfQ09NUEFUKSB7XG4gIC8vIGlmICghbW9kdWxlLmV4cG9ydHMpLFxuICAvLyBpZiB0aGVyZSBpcyBubyBPYmplY3QuZW50cmllcyxcbiAgLy8gYnV0IHdlIHdhbnQgdG8gZm9yY2UgY29tcGF0IHNvXG4gIG1vZHVsZS5leHBvcnRzID0gKGZ1bmN0aW9uIHRvUGFpcnMob2JqKSB7XG4gICAgY29uc3QgcGFpcnMgPSBbXVxuXG4gICAgZm9yIChsZXQgcHJvcCBpbiBvYmopIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eShwcm9wLCBvYmopKSB7XG4gICAgICAgIHBhaXJzW3BhaXJzLmxlbmd0aF0gPSBbcHJvcCwgb2JqW3Byb3BdXVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYWlyc1xuICB9KVxufVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO0FBQzNDQSxHQUFLLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQ3hELE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU87O0FBRS9CLElBQUksVUFBVSxFQUFFOzs7O0VBSWQsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLFNBQVMsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUN0Q0EsR0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFOztJQUVoQixLQUFLQyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtNQUNwQixJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7T0FDeEM7S0FDRjs7SUFFRCxPQUFPLEtBQUs7R0FDYixDQUFDO0NBQ0g7In0=