source: trip-planner-front/node_modules/rxjs/internal/observable/bindNodeCallback.js

Last change on this file was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 4.4 KB
RevLine 
[6a3a178]1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var Observable_1 = require("../Observable");
4var AsyncSubject_1 = require("../AsyncSubject");
5var map_1 = require("../operators/map");
6var canReportError_1 = require("../util/canReportError");
7var isScheduler_1 = require("../util/isScheduler");
8var isArray_1 = require("../util/isArray");
9function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
10 if (resultSelector) {
11 if (isScheduler_1.isScheduler(resultSelector)) {
12 scheduler = resultSelector;
13 }
14 else {
15 return function () {
16 var args = [];
17 for (var _i = 0; _i < arguments.length; _i++) {
18 args[_i] = arguments[_i];
19 }
20 return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
21 };
22 }
23 }
24 return function () {
25 var args = [];
26 for (var _i = 0; _i < arguments.length; _i++) {
27 args[_i] = arguments[_i];
28 }
29 var params = {
30 subject: undefined,
31 args: args,
32 callbackFunc: callbackFunc,
33 scheduler: scheduler,
34 context: this,
35 };
36 return new Observable_1.Observable(function (subscriber) {
37 var context = params.context;
38 var subject = params.subject;
39 if (!scheduler) {
40 if (!subject) {
41 subject = params.subject = new AsyncSubject_1.AsyncSubject();
42 var handler = function () {
43 var innerArgs = [];
44 for (var _i = 0; _i < arguments.length; _i++) {
45 innerArgs[_i] = arguments[_i];
46 }
47 var err = innerArgs.shift();
48 if (err) {
49 subject.error(err);
50 return;
51 }
52 subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
53 subject.complete();
54 };
55 try {
56 callbackFunc.apply(context, args.concat([handler]));
57 }
58 catch (err) {
59 if (canReportError_1.canReportError(subject)) {
60 subject.error(err);
61 }
62 else {
63 console.warn(err);
64 }
65 }
66 }
67 return subject.subscribe(subscriber);
68 }
69 else {
70 return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });
71 }
72 });
73 };
74}
75exports.bindNodeCallback = bindNodeCallback;
76function dispatch(state) {
77 var _this = this;
78 var params = state.params, subscriber = state.subscriber, context = state.context;
79 var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;
80 var subject = params.subject;
81 if (!subject) {
82 subject = params.subject = new AsyncSubject_1.AsyncSubject();
83 var handler = function () {
84 var innerArgs = [];
85 for (var _i = 0; _i < arguments.length; _i++) {
86 innerArgs[_i] = arguments[_i];
87 }
88 var err = innerArgs.shift();
89 if (err) {
90 _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
91 }
92 else {
93 var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
94 _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
95 }
96 };
97 try {
98 callbackFunc.apply(context, args.concat([handler]));
99 }
100 catch (err) {
101 this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
102 }
103 }
104 this.add(subject.subscribe(subscriber));
105}
106function dispatchNext(arg) {
107 var value = arg.value, subject = arg.subject;
108 subject.next(value);
109 subject.complete();
110}
111function dispatchError(arg) {
112 var err = arg.err, subject = arg.subject;
113 subject.error(err);
114}
115//# sourceMappingURL=bindNodeCallback.js.map
Note: See TracBrowser for help on using the repository browser.