123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = createIterator;
- var _isArrayLike = require('./isArrayLike.js');
- var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
- var _getIterator = require('./getIterator.js');
- var _getIterator2 = _interopRequireDefault(_getIterator);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function createArrayIterator(coll) {
- var i = -1;
- var len = coll.length;
- return function next() {
- return ++i < len ? { value: coll[i], key: i } : null;
- };
- }
- function createES2015Iterator(iterator) {
- var i = -1;
- return function next() {
- var item = iterator.next();
- if (item.done) return null;
- i++;
- return { value: item.value, key: i };
- };
- }
- function createObjectIterator(obj) {
- var okeys = obj ? Object.keys(obj) : [];
- var i = -1;
- var len = okeys.length;
- return function next() {
- var key = okeys[++i];
- if (key === '__proto__') {
- return next();
- }
- return i < len ? { value: obj[key], key } : null;
- };
- }
- function createIterator(coll) {
- if ((0, _isArrayLike2.default)(coll)) {
- return createArrayIterator(coll);
- }
- var iterator = (0, _getIterator2.default)(coll);
- return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);
- }
- module.exports = exports['default'];
|