basant307/AI_Governance_Project
048
1'use strict';2 3Object.defineProperty(exports, "__esModule", {4 value: true5});6exports.default = createIterator;7 8var _isArrayLike = require('./isArrayLike.js');9 10var _isArrayLike2 = _interopRequireDefault(_isArrayLike);11 12var _getIterator = require('./getIterator.js');13 14var _getIterator2 = _interopRequireDefault(_getIterator);15 16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }17 18function createArrayIterator(coll) {19 var i = -1;20 var len = coll.length;21 return function next() {22 return ++i < len ? { value: coll[i], key: i } : null;23 };24}25 26function createES2015Iterator(iterator) {27 var i = -1;28 return function next() {29 var item = iterator.next();30 if (item.done) return null;31 i++;32 return { value: item.value, key: i };33 };34}35 36function createObjectIterator(obj) {37 var okeys = obj ? Object.keys(obj) : [];38 var i = -1;39 var len = okeys.length;40 return function next() {41 var key = okeys[++i];42 if (key === '__proto__') {43 return next();44 }45 return i < len ? { value: obj[key], key } : null;46 };47}48 49function createIterator(coll) {50 if ((0, _isArrayLike2.default)(coll)) {51 return createArrayIterator(coll);52 }53 54 var iterator = (0, _getIterator2.default)(coll);55 return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);56}57module.exports = exports.default;