source: trip-planner-front/node_modules/rxjs/_esm5/internal/Subject.js@ 6a3a178

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

initial commit

  • Property mode set to 100644
File size: 5.3 KB
Line 
1/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */
2import * as tslib_1 from "tslib";
3import { Observable } from './Observable';
4import { Subscriber } from './Subscriber';
5import { Subscription } from './Subscription';
6import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';
7import { SubjectSubscription } from './SubjectSubscription';
8import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';
9var SubjectSubscriber = /*@__PURE__*/ (function (_super) {
10 tslib_1.__extends(SubjectSubscriber, _super);
11 function SubjectSubscriber(destination) {
12 var _this = _super.call(this, destination) || this;
13 _this.destination = destination;
14 return _this;
15 }
16 return SubjectSubscriber;
17}(Subscriber));
18export { SubjectSubscriber };
19var Subject = /*@__PURE__*/ (function (_super) {
20 tslib_1.__extends(Subject, _super);
21 function Subject() {
22 var _this = _super.call(this) || this;
23 _this.observers = [];
24 _this.closed = false;
25 _this.isStopped = false;
26 _this.hasError = false;
27 _this.thrownError = null;
28 return _this;
29 }
30 Subject.prototype[rxSubscriberSymbol] = function () {
31 return new SubjectSubscriber(this);
32 };
33 Subject.prototype.lift = function (operator) {
34 var subject = new AnonymousSubject(this, this);
35 subject.operator = operator;
36 return subject;
37 };
38 Subject.prototype.next = function (value) {
39 if (this.closed) {
40 throw new ObjectUnsubscribedError();
41 }
42 if (!this.isStopped) {
43 var observers = this.observers;
44 var len = observers.length;
45 var copy = observers.slice();
46 for (var i = 0; i < len; i++) {
47 copy[i].next(value);
48 }
49 }
50 };
51 Subject.prototype.error = function (err) {
52 if (this.closed) {
53 throw new ObjectUnsubscribedError();
54 }
55 this.hasError = true;
56 this.thrownError = err;
57 this.isStopped = true;
58 var observers = this.observers;
59 var len = observers.length;
60 var copy = observers.slice();
61 for (var i = 0; i < len; i++) {
62 copy[i].error(err);
63 }
64 this.observers.length = 0;
65 };
66 Subject.prototype.complete = function () {
67 if (this.closed) {
68 throw new ObjectUnsubscribedError();
69 }
70 this.isStopped = true;
71 var observers = this.observers;
72 var len = observers.length;
73 var copy = observers.slice();
74 for (var i = 0; i < len; i++) {
75 copy[i].complete();
76 }
77 this.observers.length = 0;
78 };
79 Subject.prototype.unsubscribe = function () {
80 this.isStopped = true;
81 this.closed = true;
82 this.observers = null;
83 };
84 Subject.prototype._trySubscribe = function (subscriber) {
85 if (this.closed) {
86 throw new ObjectUnsubscribedError();
87 }
88 else {
89 return _super.prototype._trySubscribe.call(this, subscriber);
90 }
91 };
92 Subject.prototype._subscribe = function (subscriber) {
93 if (this.closed) {
94 throw new ObjectUnsubscribedError();
95 }
96 else if (this.hasError) {
97 subscriber.error(this.thrownError);
98 return Subscription.EMPTY;
99 }
100 else if (this.isStopped) {
101 subscriber.complete();
102 return Subscription.EMPTY;
103 }
104 else {
105 this.observers.push(subscriber);
106 return new SubjectSubscription(this, subscriber);
107 }
108 };
109 Subject.prototype.asObservable = function () {
110 var observable = new Observable();
111 observable.source = this;
112 return observable;
113 };
114 Subject.create = function (destination, source) {
115 return new AnonymousSubject(destination, source);
116 };
117 return Subject;
118}(Observable));
119export { Subject };
120var AnonymousSubject = /*@__PURE__*/ (function (_super) {
121 tslib_1.__extends(AnonymousSubject, _super);
122 function AnonymousSubject(destination, source) {
123 var _this = _super.call(this) || this;
124 _this.destination = destination;
125 _this.source = source;
126 return _this;
127 }
128 AnonymousSubject.prototype.next = function (value) {
129 var destination = this.destination;
130 if (destination && destination.next) {
131 destination.next(value);
132 }
133 };
134 AnonymousSubject.prototype.error = function (err) {
135 var destination = this.destination;
136 if (destination && destination.error) {
137 this.destination.error(err);
138 }
139 };
140 AnonymousSubject.prototype.complete = function () {
141 var destination = this.destination;
142 if (destination && destination.complete) {
143 this.destination.complete();
144 }
145 };
146 AnonymousSubject.prototype._subscribe = function (subscriber) {
147 var source = this.source;
148 if (source) {
149 return this.source.subscribe(subscriber);
150 }
151 else {
152 return Subscription.EMPTY;
153 }
154 };
155 return AnonymousSubject;
156}(Subject));
157export { AnonymousSubject };
158//# sourceMappingURL=Subject.js.map
Note: See TracBrowser for help on using the repository browser.