source: trip-planner-front/node_modules/rxjs/_esm5/internal/Subscriber.js@ 8d391a1

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

initial commit

  • Property mode set to 100644
File size: 8.4 KB
Line 
1/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */
2import * as tslib_1 from "tslib";
3import { isFunction } from './util/isFunction';
4import { empty as emptyObserver } from './Observer';
5import { Subscription } from './Subscription';
6import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
7import { config } from './config';
8import { hostReportError } from './util/hostReportError';
9var Subscriber = /*@__PURE__*/ (function (_super) {
10 tslib_1.__extends(Subscriber, _super);
11 function Subscriber(destinationOrNext, error, complete) {
12 var _this = _super.call(this) || this;
13 _this.syncErrorValue = null;
14 _this.syncErrorThrown = false;
15 _this.syncErrorThrowable = false;
16 _this.isStopped = false;
17 switch (arguments.length) {
18 case 0:
19 _this.destination = emptyObserver;
20 break;
21 case 1:
22 if (!destinationOrNext) {
23 _this.destination = emptyObserver;
24 break;
25 }
26 if (typeof destinationOrNext === 'object') {
27 if (destinationOrNext instanceof Subscriber) {
28 _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
29 _this.destination = destinationOrNext;
30 destinationOrNext.add(_this);
31 }
32 else {
33 _this.syncErrorThrowable = true;
34 _this.destination = new SafeSubscriber(_this, destinationOrNext);
35 }
36 break;
37 }
38 default:
39 _this.syncErrorThrowable = true;
40 _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);
41 break;
42 }
43 return _this;
44 }
45 Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };
46 Subscriber.create = function (next, error, complete) {
47 var subscriber = new Subscriber(next, error, complete);
48 subscriber.syncErrorThrowable = false;
49 return subscriber;
50 };
51 Subscriber.prototype.next = function (value) {
52 if (!this.isStopped) {
53 this._next(value);
54 }
55 };
56 Subscriber.prototype.error = function (err) {
57 if (!this.isStopped) {
58 this.isStopped = true;
59 this._error(err);
60 }
61 };
62 Subscriber.prototype.complete = function () {
63 if (!this.isStopped) {
64 this.isStopped = true;
65 this._complete();
66 }
67 };
68 Subscriber.prototype.unsubscribe = function () {
69 if (this.closed) {
70 return;
71 }
72 this.isStopped = true;
73 _super.prototype.unsubscribe.call(this);
74 };
75 Subscriber.prototype._next = function (value) {
76 this.destination.next(value);
77 };
78 Subscriber.prototype._error = function (err) {
79 this.destination.error(err);
80 this.unsubscribe();
81 };
82 Subscriber.prototype._complete = function () {
83 this.destination.complete();
84 this.unsubscribe();
85 };
86 Subscriber.prototype._unsubscribeAndRecycle = function () {
87 var _parentOrParents = this._parentOrParents;
88 this._parentOrParents = null;
89 this.unsubscribe();
90 this.closed = false;
91 this.isStopped = false;
92 this._parentOrParents = _parentOrParents;
93 return this;
94 };
95 return Subscriber;
96}(Subscription));
97export { Subscriber };
98var SafeSubscriber = /*@__PURE__*/ (function (_super) {
99 tslib_1.__extends(SafeSubscriber, _super);
100 function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
101 var _this = _super.call(this) || this;
102 _this._parentSubscriber = _parentSubscriber;
103 var next;
104 var context = _this;
105 if (isFunction(observerOrNext)) {
106 next = observerOrNext;
107 }
108 else if (observerOrNext) {
109 next = observerOrNext.next;
110 error = observerOrNext.error;
111 complete = observerOrNext.complete;
112 if (observerOrNext !== emptyObserver) {
113 context = Object.create(observerOrNext);
114 if (isFunction(context.unsubscribe)) {
115 _this.add(context.unsubscribe.bind(context));
116 }
117 context.unsubscribe = _this.unsubscribe.bind(_this);
118 }
119 }
120 _this._context = context;
121 _this._next = next;
122 _this._error = error;
123 _this._complete = complete;
124 return _this;
125 }
126 SafeSubscriber.prototype.next = function (value) {
127 if (!this.isStopped && this._next) {
128 var _parentSubscriber = this._parentSubscriber;
129 if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
130 this.__tryOrUnsub(this._next, value);
131 }
132 else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
133 this.unsubscribe();
134 }
135 }
136 };
137 SafeSubscriber.prototype.error = function (err) {
138 if (!this.isStopped) {
139 var _parentSubscriber = this._parentSubscriber;
140 var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;
141 if (this._error) {
142 if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
143 this.__tryOrUnsub(this._error, err);
144 this.unsubscribe();
145 }
146 else {
147 this.__tryOrSetError(_parentSubscriber, this._error, err);
148 this.unsubscribe();
149 }
150 }
151 else if (!_parentSubscriber.syncErrorThrowable) {
152 this.unsubscribe();
153 if (useDeprecatedSynchronousErrorHandling) {
154 throw err;
155 }
156 hostReportError(err);
157 }
158 else {
159 if (useDeprecatedSynchronousErrorHandling) {
160 _parentSubscriber.syncErrorValue = err;
161 _parentSubscriber.syncErrorThrown = true;
162 }
163 else {
164 hostReportError(err);
165 }
166 this.unsubscribe();
167 }
168 }
169 };
170 SafeSubscriber.prototype.complete = function () {
171 var _this = this;
172 if (!this.isStopped) {
173 var _parentSubscriber = this._parentSubscriber;
174 if (this._complete) {
175 var wrappedComplete = function () { return _this._complete.call(_this._context); };
176 if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
177 this.__tryOrUnsub(wrappedComplete);
178 this.unsubscribe();
179 }
180 else {
181 this.__tryOrSetError(_parentSubscriber, wrappedComplete);
182 this.unsubscribe();
183 }
184 }
185 else {
186 this.unsubscribe();
187 }
188 }
189 };
190 SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
191 try {
192 fn.call(this._context, value);
193 }
194 catch (err) {
195 this.unsubscribe();
196 if (config.useDeprecatedSynchronousErrorHandling) {
197 throw err;
198 }
199 else {
200 hostReportError(err);
201 }
202 }
203 };
204 SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
205 if (!config.useDeprecatedSynchronousErrorHandling) {
206 throw new Error('bad call');
207 }
208 try {
209 fn.call(this._context, value);
210 }
211 catch (err) {
212 if (config.useDeprecatedSynchronousErrorHandling) {
213 parent.syncErrorValue = err;
214 parent.syncErrorThrown = true;
215 return true;
216 }
217 else {
218 hostReportError(err);
219 return true;
220 }
221 }
222 return false;
223 };
224 SafeSubscriber.prototype._unsubscribe = function () {
225 var _parentSubscriber = this._parentSubscriber;
226 this._context = null;
227 this._parentSubscriber = null;
228 _parentSubscriber.unsubscribe();
229 };
230 return SafeSubscriber;
231}(Subscriber));
232export { SafeSubscriber };
233//# sourceMappingURL=Subscriber.js.map
Note: See TracBrowser for help on using the repository browser.