"use strict"; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.bindCallbackInternals = void 0; var isScheduler_1 = require("../util/isScheduler"); var Observable_1 = require("../Observable"); var subscribeOn_1 = require("../operators/subscribeOn"); var mapOneOrManyArgs_1 = require("../util/mapOneOrManyArgs"); var observeOn_1 = require("../operators/observeOn"); var AsyncSubject_1 = require("../AsyncSubject"); function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) { if (resultSelector) { if (isScheduler_1.isScheduler(resultSelector)) { scheduler = resultSelector; } else { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler) .apply(this, args) .pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)); }; } } if (scheduler) { return function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return bindCallbackInternals(isNodeStyle, callbackFunc) .apply(this, args) .pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler)); }; } return function () { var _this = this; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var subject = new AsyncSubject_1.AsyncSubject(); var uninitialized = true; return new Observable_1.Observable(function (subscriber) { var subs = subject.subscribe(subscriber); if (uninitialized) { uninitialized = false; var isAsync_1 = false; var isComplete_1 = false; callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [ function () { var results = []; for (var _i = 0; _i < arguments.length; _i++) { results[_i] = arguments[_i]; } if (isNodeStyle) { var err = results.shift(); if (err != null) { subject.error(err); return; } } subject.next(1 < results.length ? results : results[0]); isComplete_1 = true; if (isAsync_1) { subject.complete(); } }, ])); if (isComplete_1) { subject.complete(); } isAsync_1 = true; } return subs; }); }; } exports.bindCallbackInternals = bindCallbackInternals; //# sourceMappingURL=bindCallbackInternals.js.map