Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / _esm2015 / internal / observable / bindCallback.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js
new file mode 100644 (file)
index 0000000..6d74773
--- /dev/null
@@ -0,0 +1,85 @@
+import { Observable } from '../Observable';
+import { AsyncSubject } from '../AsyncSubject';
+import { map } from '../operators/map';
+import { canReportError } from '../util/canReportError';
+import { isArray } from '../util/isArray';
+import { isScheduler } from '../util/isScheduler';
+export function bindCallback(callbackFunc, resultSelector, scheduler) {
+    if (resultSelector) {
+        if (isScheduler(resultSelector)) {
+            scheduler = resultSelector;
+        }
+        else {
+            return (...args) => bindCallback(callbackFunc, scheduler)(...args).pipe(map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)));
+        }
+    }
+    return function (...args) {
+        const context = this;
+        let subject;
+        const params = {
+            context,
+            subject,
+            callbackFunc,
+            scheduler,
+        };
+        return new Observable(subscriber => {
+            if (!scheduler) {
+                if (!subject) {
+                    subject = new AsyncSubject();
+                    const handler = (...innerArgs) => {
+                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
+                        subject.complete();
+                    };
+                    try {
+                        callbackFunc.apply(context, [...args, handler]);
+                    }
+                    catch (err) {
+                        if (canReportError(subject)) {
+                            subject.error(err);
+                        }
+                        else {
+                            console.warn(err);
+                        }
+                    }
+                }
+                return subject.subscribe(subscriber);
+            }
+            else {
+                const state = {
+                    args, subscriber, params,
+                };
+                return scheduler.schedule(dispatch, 0, state);
+            }
+        });
+    };
+}
+function dispatch(state) {
+    const self = this;
+    const { args, subscriber, params } = state;
+    const { callbackFunc, context, scheduler } = params;
+    let { subject } = params;
+    if (!subject) {
+        subject = params.subject = new AsyncSubject();
+        const handler = (...innerArgs) => {
+            const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
+            this.add(scheduler.schedule(dispatchNext, 0, { value, subject }));
+        };
+        try {
+            callbackFunc.apply(context, [...args, handler]);
+        }
+        catch (err) {
+            subject.error(err);
+        }
+    }
+    this.add(subject.subscribe(subscriber));
+}
+function dispatchNext(state) {
+    const { value, subject } = state;
+    subject.next(value);
+    subject.complete();
+}
+function dispatchError(state) {
+    const { err, subject } = state;
+    subject.error(err);
+}
+//# sourceMappingURL=bindCallback.js.map
\ No newline at end of file