UNPKG

foop

Version:

interfaces that describe their intentions.

42 lines (38 loc) 2.97 kB
var preAllocate = require('../array/preAllocate') /** * @desc convert an iterator into an array using * @since 5.0.0-beta.6 * @memberOf cast * * @name iteratorToArray * @alias arrayFromIterator * * @param {Iterator} iter iterator * @return {Array<*>} iterator values * * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators mozilla-iterators-and-generators} * @see {@link mozilla-iterators-and-generators} * @see symbols/iterator * @see array/preAllocate * * @example * * const map = new Map(Object.entries({eh: true})) * * iteratorToArray(map.keys()) * //=> ['eh'] * * iteratorToArray(new Set([0, 1]).keys()) * //=> [0, 1] * */ module.exports = function iteratorToArray(iter) { var list = preAllocate(iter) var next var index = 0 while (!(next = iter.next()).done && index++) { list[index] = next.value } return list } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlcmF0b3JUb0FycmF5LmpzIiwic291cmNlcyI6WyJpdGVyYXRvclRvQXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcHJlQWxsb2NhdGUgPSByZXF1aXJlKCcuLi9hcnJheS9wcmVBbGxvY2F0ZScpXG5cbi8qKlxuICogQGRlc2MgY29udmVydCBhbiBpdGVyYXRvciBpbnRvIGFuIGFycmF5IHVzaW5nXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKiBAbWVtYmVyT2YgY2FzdFxuICpcbiAqIEBuYW1lIGl0ZXJhdG9yVG9BcnJheVxuICogQGFsaWFzIGFycmF5RnJvbUl0ZXJhdG9yXG4gKlxuICogQHBhcmFtICB7SXRlcmF0b3J9IGl0ZXIgaXRlcmF0b3JcbiAqIEByZXR1cm4ge0FycmF5PCo+fSBpdGVyYXRvciB2YWx1ZXNcbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9JdGVyYXRvcnNfYW5kX0dlbmVyYXRvcnMgbW96aWxsYS1pdGVyYXRvcnMtYW5kLWdlbmVyYXRvcnN9XG4gKiBAc2VlIHtAbGluayBtb3ppbGxhLWl0ZXJhdG9ycy1hbmQtZ2VuZXJhdG9yc31cbiAqIEBzZWUgc3ltYm9scy9pdGVyYXRvclxuICogQHNlZSBhcnJheS9wcmVBbGxvY2F0ZVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgY29uc3QgbWFwID0gbmV3IE1hcChPYmplY3QuZW50cmllcyh7ZWg6IHRydWV9KSlcbiAqXG4gKiAgICBpdGVyYXRvclRvQXJyYXkobWFwLmtleXMoKSlcbiAqICAgIC8vPT4gWydlaCddXG4gKlxuICogICAgaXRlcmF0b3JUb0FycmF5KG5ldyBTZXQoWzAsIDFdKS5rZXlzKCkpXG4gKiAgICAvLz0+IFswLCAxXVxuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpdGVyYXRvclRvQXJyYXkoaXRlcikge1xuICBjb25zdCBsaXN0ID0gcHJlQWxsb2NhdGUoaXRlcilcbiAgbGV0IG5leHRcbiAgbGV0IGluZGV4ID0gMFxuXG4gIHdoaWxlICghKG5leHQgPSBpdGVyLm5leHQoKSkuZG9uZSAmJiBpbmRleCsrKSB7XG4gICAgbGlzdFtpbmRleF0gPSBuZXh0LnZhbHVlXG4gIH1cblxuICByZXR1cm4gbGlzdFxufVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkJuRCxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsZUFBZSxDQUFDLElBQUksRUFBRTtFQUM5Q0EsR0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO0VBQzlCQyxHQUFHLENBQUMsSUFBSTtFQUNSQSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUM7O0VBRWIsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtJQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUs7R0FDekI7O0VBRUQsT0FBTyxJQUFJO0NBQ1o7In0=