UNPKG

@reactivex/ix-es5-esm

Version:

The Interactive Extensions for JavaScript

52 lines (50 loc) 1.89 kB
import { __extends, __generator } from "tslib"; import { IterableX } from './iterablex.js'; import { returnIterator } from '../util/returniterator.js'; /** @ignore */ var ZipIterable = /** @class */ (function (_super) { __extends(ZipIterable, _super); function ZipIterable(sources) { var _this = _super.call(this) || this; _this._sources = sources; return _this; } // eslint-disable-next-line consistent-return ZipIterable.prototype[Symbol.iterator] = function () { var sourcesLength, its, values, index, result; return __generator(this, function (_a) { switch (_a.label) { case 0: sourcesLength = this._sources.length; its = this._sources.map(function (x) { return x[Symbol.iterator](); }); _a.label = 1; case 1: if (!(sourcesLength > 0)) return [3 /*break*/, 3]; values = new Array(sourcesLength); for (index = -1; ++index < sourcesLength;) { result = its[index].next(); if (result.done) { its.forEach(returnIterator); return [2 /*return*/, undefined]; } values[index] = result.value; } return [4 /*yield*/, values]; case 2: _a.sent(); return [3 /*break*/, 1]; case 3: return [2 /*return*/]; } }); }; return ZipIterable; }(IterableX)); export { ZipIterable }; export function zip() { var sources = []; for (var _i = 0; _i < arguments.length; _i++) { sources[_i] = arguments[_i]; } return new ZipIterable(sources); } //# sourceMappingURL=zip.js.map