| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", { value: true });
 
- var canReportError_1 = require("./util/canReportError");
 
- var toSubscriber_1 = require("./util/toSubscriber");
 
- var observable_1 = require("./symbol/observable");
 
- var pipe_1 = require("./util/pipe");
 
- var config_1 = require("./config");
 
- var Observable = (function () {
 
-     function Observable(subscribe) {
 
-         this._isScalar = false;
 
-         if (subscribe) {
 
-             this._subscribe = subscribe;
 
-         }
 
-     }
 
-     Observable.prototype.lift = function (operator) {
 
-         var observable = new Observable();
 
-         observable.source = this;
 
-         observable.operator = operator;
 
-         return observable;
 
-     };
 
-     Observable.prototype.subscribe = function (observerOrNext, error, complete) {
 
-         var operator = this.operator;
 
-         var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);
 
-         if (operator) {
 
-             sink.add(operator.call(sink, this.source));
 
-         }
 
-         else {
 
-             sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
 
-                 this._subscribe(sink) :
 
-                 this._trySubscribe(sink));
 
-         }
 
-         if (config_1.config.useDeprecatedSynchronousErrorHandling) {
 
-             if (sink.syncErrorThrowable) {
 
-                 sink.syncErrorThrowable = false;
 
-                 if (sink.syncErrorThrown) {
 
-                     throw sink.syncErrorValue;
 
-                 }
 
-             }
 
-         }
 
-         return sink;
 
-     };
 
-     Observable.prototype._trySubscribe = function (sink) {
 
-         try {
 
-             return this._subscribe(sink);
 
-         }
 
-         catch (err) {
 
-             if (config_1.config.useDeprecatedSynchronousErrorHandling) {
 
-                 sink.syncErrorThrown = true;
 
-                 sink.syncErrorValue = err;
 
-             }
 
-             if (canReportError_1.canReportError(sink)) {
 
-                 sink.error(err);
 
-             }
 
-             else {
 
-                 console.warn(err);
 
-             }
 
-         }
 
-     };
 
-     Observable.prototype.forEach = function (next, promiseCtor) {
 
-         var _this = this;
 
-         promiseCtor = getPromiseCtor(promiseCtor);
 
-         return new promiseCtor(function (resolve, reject) {
 
-             var subscription;
 
-             subscription = _this.subscribe(function (value) {
 
-                 try {
 
-                     next(value);
 
-                 }
 
-                 catch (err) {
 
-                     reject(err);
 
-                     if (subscription) {
 
-                         subscription.unsubscribe();
 
-                     }
 
-                 }
 
-             }, reject, resolve);
 
-         });
 
-     };
 
-     Observable.prototype._subscribe = function (subscriber) {
 
-         var source = this.source;
 
-         return source && source.subscribe(subscriber);
 
-     };
 
-     Observable.prototype[observable_1.observable] = function () {
 
-         return this;
 
-     };
 
-     Observable.prototype.pipe = function () {
 
-         var operations = [];
 
-         for (var _i = 0; _i < arguments.length; _i++) {
 
-             operations[_i] = arguments[_i];
 
-         }
 
-         if (operations.length === 0) {
 
-             return this;
 
-         }
 
-         return pipe_1.pipeFromArray(operations)(this);
 
-     };
 
-     Observable.prototype.toPromise = function (promiseCtor) {
 
-         var _this = this;
 
-         promiseCtor = getPromiseCtor(promiseCtor);
 
-         return new promiseCtor(function (resolve, reject) {
 
-             var value;
 
-             _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
 
-         });
 
-     };
 
-     Observable.create = function (subscribe) {
 
-         return new Observable(subscribe);
 
-     };
 
-     return Observable;
 
- }());
 
- exports.Observable = Observable;
 
- function getPromiseCtor(promiseCtor) {
 
-     if (!promiseCtor) {
 
-         promiseCtor = config_1.config.Promise || Promise;
 
-     }
 
-     if (!promiseCtor) {
 
-         throw new Error('no Promise impl found');
 
-     }
 
-     return promiseCtor;
 
- }
 
- //# sourceMappingURL=Observable.js.map
 
 
  |