source: trip-planner-front/node_modules/rxjs/_esm2015/internal/operators/multicast.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: 1.3 KB
Line 
1import { connectableObservableDescriptor } from '../observable/ConnectableObservable';
2export function multicast(subjectOrSubjectFactory, selector) {
3 return function multicastOperatorFunction(source) {
4 let subjectFactory;
5 if (typeof subjectOrSubjectFactory === 'function') {
6 subjectFactory = subjectOrSubjectFactory;
7 }
8 else {
9 subjectFactory = function subjectFactory() {
10 return subjectOrSubjectFactory;
11 };
12 }
13 if (typeof selector === 'function') {
14 return source.lift(new MulticastOperator(subjectFactory, selector));
15 }
16 const connectable = Object.create(source, connectableObservableDescriptor);
17 connectable.source = source;
18 connectable.subjectFactory = subjectFactory;
19 return connectable;
20 };
21}
22export class MulticastOperator {
23 constructor(subjectFactory, selector) {
24 this.subjectFactory = subjectFactory;
25 this.selector = selector;
26 }
27 call(subscriber, source) {
28 const { selector } = this;
29 const subject = this.subjectFactory();
30 const subscription = selector(subject).subscribe(subscriber);
31 subscription.add(source.subscribe(subject));
32 return subscription;
33 }
34}
35//# sourceMappingURL=multicast.js.map
Note: See TracBrowser for help on using the repository browser.