1 | "use strict";
|
2 | var symbol_observable_1 = require('symbol-observable');
|
3 | function isSubscription(subscription) {
|
4 | return subscription.unsubscribe !== undefined;
|
5 | }
|
6 | var Observable = (function () {
|
7 | function Observable(subscriberFunction) {
|
8 | this.subscriberFunction = subscriberFunction;
|
9 | }
|
10 | Observable.prototype[symbol_observable_1.default] = function () {
|
11 | return this;
|
12 | };
|
13 | Observable.prototype.subscribe = function (observer) {
|
14 | var subscriptionOrCleanupFunction = this.subscriberFunction(observer);
|
15 | if (isSubscription(subscriptionOrCleanupFunction)) {
|
16 | return subscriptionOrCleanupFunction;
|
17 | }
|
18 | else {
|
19 | return {
|
20 | unsubscribe: subscriptionOrCleanupFunction,
|
21 | };
|
22 | }
|
23 | };
|
24 | return Observable;
|
25 | }());
|
26 | exports.Observable = Observable;
|
27 |
|
\ | No newline at end of file |