deep-iterator
Version:
Deep iteration of any object or iterable collection.
232 lines (183 loc) • 8.74 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LEAF = undefined;
var _getIterator2 = require("babel-runtime/core-js/get-iterator");
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _regenerator = require("babel-runtime/regenerator");
var _regenerator2 = _interopRequireDefault(_regenerator);
exports.objectIterator = objectIterator;
exports.arrayIterator = arrayIterator;
exports.genericIterator = genericIterator;
exports.mapIterator = mapIterator;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _marked = [objectIterator, arrayIterator, genericIterator, mapIterator].map(_regenerator2.default.mark);
function objectIterator(obj) {
var key;
return _regenerator2.default.wrap(function objectIterator$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.t0 = _regenerator2.default.keys(obj);
case 1:
if ((_context.t1 = _context.t0()).done) {
_context.next = 7;
break;
}
key = _context.t1.value;
_context.next = 5;
return [key, obj[key]];
case 5:
_context.next = 1;
break;
case 7:
case "end":
return _context.stop();
}
}
}, _marked[0], this);
}
function arrayIterator(arr) {
var i;
return _regenerator2.default.wrap(function arrayIterator$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
i = 0;
case 1:
if (!(i < arr.length)) {
_context2.next = 7;
break;
}
_context2.next = 4;
return [i, arr[i]];
case 4:
i++;
_context2.next = 1;
break;
case 7:
case "end":
return _context2.stop();
}
}
}, _marked[1], this);
}
// transpiled generator has uncovered branches
// istanbul issue #645
/* istanbul ignore next */
function genericIterator(iterator) {
var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, value;
return _regenerator2.default.wrap(function genericIterator$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context3.prev = 3;
_iterator = (0, _getIterator3.default)(iterator);
case 5:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context3.next = 12;
break;
}
value = _step.value;
_context3.next = 9;
return [undefined, value];
case 9:
_iteratorNormalCompletion = true;
_context3.next = 5;
break;
case 12:
_context3.next = 18;
break;
case 14:
_context3.prev = 14;
_context3.t0 = _context3["catch"](3);
_didIteratorError = true;
_iteratorError = _context3.t0;
case 18:
_context3.prev = 18;
_context3.prev = 19;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 21:
_context3.prev = 21;
if (!_didIteratorError) {
_context3.next = 24;
break;
}
throw _iteratorError;
case 24:
return _context3.finish(21);
case 25:
return _context3.finish(18);
case 26:
case "end":
return _context3.stop();
}
}
}, _marked[2], this, [[3, 14, 18, 26], [19,, 21, 25]]);
}
// transpiled generator has uncovered branches
// istanbul issue #645
/* istanbul ignore next */
function mapIterator(iterator) {
var _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, element;
return _regenerator2.default.wrap(function mapIterator$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_iteratorNormalCompletion2 = true;
_didIteratorError2 = false;
_iteratorError2 = undefined;
_context4.prev = 3;
_iterator2 = (0, _getIterator3.default)(iterator);
case 5:
if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) {
_context4.next = 12;
break;
}
element = _step2.value;
_context4.next = 9;
return element;
case 9:
_iteratorNormalCompletion2 = true;
_context4.next = 5;
break;
case 12:
_context4.next = 18;
break;
case 14:
_context4.prev = 14;
_context4.t0 = _context4["catch"](3);
_didIteratorError2 = true;
_iteratorError2 = _context4.t0;
case 18:
_context4.prev = 18;
_context4.prev = 19;
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
case 21:
_context4.prev = 21;
if (!_didIteratorError2) {
_context4.next = 24;
break;
}
throw _iteratorError2;
case 24:
return _context4.finish(21);
case 25:
return _context4.finish(18);
case 26:
case "end":
return _context4.stop();
}
}
}, _marked[3], this, [[3, 14, 18, 26], [19,, 21, 25]]);
}
var LEAF = exports.LEAF = null;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9nZW5lcmF0b3JzLmpzIl0sIm5hbWVzIjpbIm9iamVjdEl0ZXJhdG9yIiwiYXJyYXlJdGVyYXRvciIsImdlbmVyaWNJdGVyYXRvciIsIm1hcEl0ZXJhdG9yIiwib2JqIiwia2V5IiwiYXJyIiwiaSIsImxlbmd0aCIsIml0ZXJhdG9yIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJlbGVtZW50IiwiTEVBRiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O1FBQWlCQSxjLEdBQUFBLGM7UUFNQUMsYSxHQUFBQSxhO1FBU0FDLGUsR0FBQUEsZTtRQVNBQyxXLEdBQUFBLFc7Ozs7ZUF4QkFILGMsRUFNQUMsYSxFQVNBQyxlLEVBU0FDLFc7O0FBeEJWLFNBQVVILGNBQVYsQ0FBeUJJLEdBQXpCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1EQUNXQSxHQURYOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0lDLGFBREo7QUFBQTtBQUFBLGlCQUVHLENBQUNBLEdBQUQsRUFBTUQsSUFBSUMsR0FBSixDQUFOLENBRkg7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQU1BLFNBQVVKLGFBQVYsQ0FBd0JLLEdBQXhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNJQyxXQURKLEdBQ1EsQ0FEUjs7QUFBQTtBQUFBLGdCQUNXQSxJQUFJRCxJQUFJRSxNQURuQjtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBLGlCQUVHLENBQUNELENBQUQsRUFBSUQsSUFBSUMsQ0FBSixDQUFKLENBRkg7O0FBQUE7QUFDMkJBLGFBRDNCO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFNUDtBQUNBO0FBQ0E7QUFDTyxTQUFVTCxlQUFWLENBQTBCTyxRQUExQjtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpREFDYUEsUUFEYjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNJQyxlQURKO0FBQUE7QUFBQSxpQkFFRyxDQUFDQyxTQUFELEVBQVlELEtBQVosQ0FGSDs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQU1QO0FBQ0E7QUFDQTtBQUNPLFNBQVVQLFdBQVYsQ0FBc0JNLFFBQXRCO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGtEQUNlQSxRQURmOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0lHLGlCQURKO0FBQUE7QUFBQSxpQkFFR0EsT0FGSDs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQU1BLElBQU1DLHNCQUFPLElBQWIiLCJmaWxlIjoiZ2VuZXJhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiogb2JqZWN0SXRlcmF0b3Iob2JqKSB7XG4gIGZvciAobGV0IGtleSBpbiBvYmopIHtcbiAgICB5aWVsZCBba2V5LCBvYmpba2V5XV07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBhcnJheUl0ZXJhdG9yKGFycikge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIHlpZWxkIFtpLCBhcnJbaV1dO1xuICB9XG59XG5cbi8vIHRyYW5zcGlsZWQgZ2VuZXJhdG9yIGhhcyB1bmNvdmVyZWQgYnJhbmNoZXNcbi8vIGlzdGFuYnVsIGlzc3VlICM2NDVcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgZnVuY3Rpb24qIGdlbmVyaWNJdGVyYXRvcihpdGVyYXRvcikge1xuICBmb3IgKGxldCB2YWx1ZSBvZiBpdGVyYXRvcikge1xuICAgIHlpZWxkIFt1bmRlZmluZWQsIHZhbHVlXTtcbiAgfVxufVxuXG4vLyB0cmFuc3BpbGVkIGdlbmVyYXRvciBoYXMgdW5jb3ZlcmVkIGJyYW5jaGVzXG4vLyBpc3RhbmJ1bCBpc3N1ZSAjNjQ1XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uKiBtYXBJdGVyYXRvcihpdGVyYXRvcikge1xuICBmb3IgKGxldCBlbGVtZW50IG9mIGl0ZXJhdG9yKSB7XG4gICAgeWllbGQgZWxlbWVudDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgTEVBRiA9IG51bGw7XG4iXX0=