aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/dist/esm5/internal/observable/zip.js
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-06-28 17:26:46 -0700
committerPinapelz <yukais@pinapelz.com>2025-06-28 17:43:56 -0700
commite4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch)
tree06284a538a6008eca75051399e47db4e5d50301c /node_modules/rxjs/dist/esm5/internal/observable/zip.js
initial commit: scaffolding
Diffstat (limited to 'node_modules/rxjs/dist/esm5/internal/observable/zip.js')
-rw-r--r--node_modules/rxjs/dist/esm5/internal/observable/zip.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm5/internal/observable/zip.js b/node_modules/rxjs/dist/esm5/internal/observable/zip.js
new file mode 100644
index 0000000..a3b2b24
--- /dev/null
+++ b/node_modules/rxjs/dist/esm5/internal/observable/zip.js
@@ -0,0 +1,46 @@
+import { __read, __spreadArray } from "tslib";
+import { Observable } from '../Observable';
+import { innerFrom } from './innerFrom';
+import { argsOrArgArray } from '../util/argsOrArgArray';
+import { EMPTY } from './empty';
+import { createOperatorSubscriber } from '../operators/OperatorSubscriber';
+import { popResultSelector } from '../util/args';
+export function zip() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ var resultSelector = popResultSelector(args);
+ var sources = argsOrArgArray(args);
+ return sources.length
+ ? new Observable(function (subscriber) {
+ var buffers = sources.map(function () { return []; });
+ var completed = sources.map(function () { return false; });
+ subscriber.add(function () {
+ buffers = completed = null;
+ });
+ var _loop_1 = function (sourceIndex) {
+ innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {
+ buffers[sourceIndex].push(value);
+ if (buffers.every(function (buffer) { return buffer.length; })) {
+ var result = buffers.map(function (buffer) { return buffer.shift(); });
+ subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray([], __read(result))) : result);
+ if (buffers.some(function (buffer, i) { return !buffer.length && completed[i]; })) {
+ subscriber.complete();
+ }
+ }
+ }, function () {
+ completed[sourceIndex] = true;
+ !buffers[sourceIndex].length && subscriber.complete();
+ }));
+ };
+ for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {
+ _loop_1(sourceIndex);
+ }
+ return function () {
+ buffers = completed = null;
+ };
+ })
+ : EMPTY;
+}
+//# sourceMappingURL=zip.js.map \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage