/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */ import { isArray } from './util/isArray'; import { isObject } from './util/isObject'; import { isFunction } from './util/isFunction'; import { UnsubscriptionError } from './util/UnsubscriptionError'; var Subscription = /*@__PURE__*/ (function () { function Subscription(unsubscribe) { this.closed = false; this._parentOrParents = null; this._subscriptions = null; if (unsubscribe) { this._ctorUnsubscribe = true; this._unsubscribe = unsubscribe; } } Subscription.prototype.unsubscribe = function () { var errors; if (this.closed) { return; } var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; this.closed = true; this._parentOrParents = null; this._subscriptions = null; if (_parentOrParents instanceof Subscription) { _parentOrParents.remove(this); } else if (_parentOrParents !== null) { for (var index = 0; index < _parentOrParents.length; ++index) { var parent_1 = _parentOrParents[index]; parent_1.remove(this); } } if (isFunction(_unsubscribe)) { if (_ctorUnsubscribe) { this._unsubscribe = undefined; } try { _unsubscribe.call(this); } catch (e) { errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; } } if (isArray(_subscriptions)) { var index = -1; var len = _subscriptions.length; while (++index < len) { var sub = _subscriptions[index]; if (isObject(sub)) { try { sub.unsubscribe(); } catch (e) { errors = errors || []; if (e instanceof UnsubscriptionError) { errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); } else { errors.push(e); } } } } } if (errors) { throw new UnsubscriptionError(errors); } }; Subscription.prototype.add = function (teardown) { var subscription = teardown; if (!teardown) { return Subscription.EMPTY; } switch (typeof teardown) { case 'function': subscription = new Subscription(teardown); case 'object': if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { return subscription; } else if (this.closed) { subscription.unsubscribe(); return subscription; } else if (!(subscription instanceof Subscription)) { var tmp = subscription; subscription = new Subscription(); subscription._subscriptions = [tmp]; } break; default: { throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); } } var _parentOrParents = subscription._parentOrParents; if (_parentOrParents === null) { subscription._parentOrParents = this; } else if (_parentOrParents instanceof Subscription) { if (_parentOrParents === this) { return subscription; } subscription._parentOrParents = [_parentOrParents, this]; } else if (_parentOrParents.indexOf(this) === -1) { _parentOrParents.push(this); } else { return subscription; } var subscriptions = this._subscriptions; if (subscriptions === null) { this._subscriptions = [subscription]; } else { subscriptions.push(subscription); } return subscription; }; Subscription.prototype.remove = function (subscription) { var subscriptions = this._subscriptions; if (subscriptions) { var subscriptionIndex = subscriptions.indexOf(subscription); if (subscriptionIndex !== -1) { subscriptions.splice(subscriptionIndex, 1); } } }; Subscription.EMPTY = (function (empty) { empty.closed = true; return empty; }(new Subscription())); return Subscription; }()); export { Subscription }; function flattenUnsubscriptionErrors(errors) { return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []); } //# sourceMappingURL=Subscription.js.map
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
observable | Folder | 0755 |
|
|
operators | Folder | 0755 |
|
|
scheduled | Folder | 0755 |
|
|
scheduler | Folder | 0755 |
|
|
symbol | Folder | 0755 |
|
|
testing | Folder | 0755 |
|
|
util | Folder | 0755 |
|
|
AsyncSubject.js | File | 1.59 KB | 0644 |
|
AsyncSubject.js.map | File | 1.14 KB | 0644 |
|
BehaviorSubject.js | File | 1.46 KB | 0644 |
|
BehaviorSubject.js.map | File | 930 B | 0644 |
|
InnerSubscriber.js | File | 1.04 KB | 0644 |
|
InnerSubscriber.js.map | File | 805 B | 0644 |
|
Notification.js | File | 2.7 KB | 0644 |
|
Notification.js.map | File | 2.17 KB | 0644 |
|
Observable.js | File | 3.95 KB | 0644 |
|
Observable.js.map | File | 3.13 KB | 0644 |
|
Observer.js | File | 494 B | 0644 |
|
Observer.js.map | File | 448 B | 0644 |
|
Operator.js | File | 37 B | 0644 |
|
Operator.js.map | File | 105 B | 0644 |
|
OuterSubscriber.js | File | 866 B | 0644 |
|
OuterSubscriber.js.map | File | 548 B | 0644 |
|
ReplaySubject.js | File | 4.36 KB | 0644 |
|
ReplaySubject.js.map | File | 3.55 KB | 0644 |
|
Rx.js | File | 7.66 KB | 0644 |
|
Rx.js.map | File | 4.49 KB | 0644 |
|
Scheduler.js | File | 602 B | 0644 |
|
Scheduler.js.map | File | 537 B | 0644 |
|
Subject.js | File | 5.25 KB | 0644 |
|
Subject.js.map | File | 3.97 KB | 0644 |
|
SubjectSubscription.js | File | 1.14 KB | 0644 |
|
SubjectSubscription.js.map | File | 868 B | 0644 |
|
Subscriber.js | File | 8.44 KB | 0644 |
|
Subscriber.js.map | File | 6.01 KB | 0644 |
|
Subscription.js | File | 5.09 KB | 0644 |
|
Subscription.js.map | File | 3.87 KB | 0644 |
|
config.js | File | 859 B | 0644 |
|
config.js.map | File | 513 B | 0644 |
|
innerSubscribe.js | File | 3.5 KB | 0644 |
|
innerSubscribe.js.map | File | 2.16 KB | 0644 |
|
types.js | File | 34 B | 0644 |
|
types.js.map | File | 99 B | 0644 |
|