{"ast":null,"code":"import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport let Observable = /*#__PURE__*/(() => {\n  class Observable {\n    constructor(subscribe) {\n      this._isScalar = false;\n\n      if (subscribe) {\n        this._subscribe = subscribe;\n      }\n    }\n\n    lift(operator) {\n      const observable = new Observable();\n      observable.source = this;\n      observable.operator = operator;\n      return observable;\n    }\n\n    subscribe(observerOrNext, error, complete) {\n      const {\n        operator\n      } = this;\n      const sink = toSubscriber(observerOrNext, error, complete);\n\n      if (operator) {\n        sink.add(operator.call(sink, this.source));\n      } else {\n        sink.add(this.source || config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));\n      }\n\n      if (config.useDeprecatedSynchronousErrorHandling) {\n        if (sink.syncErrorThrowable) {\n          sink.syncErrorThrowable = false;\n\n          if (sink.syncErrorThrown) {\n            throw sink.syncErrorValue;\n          }\n        }\n      }\n\n      return sink;\n    }\n\n    _trySubscribe(sink) {\n      try {\n        return this._subscribe(sink);\n      } catch (err) {\n        if (config.useDeprecatedSynchronousErrorHandling) {\n          sink.syncErrorThrown = true;\n          sink.syncErrorValue = err;\n        }\n\n        if (canReportError(sink)) {\n          sink.error(err);\n        } else {\n          console.warn(err);\n        }\n      }\n    }\n\n    forEach(next, promiseCtor) {\n      promiseCtor = getPromiseCtor(promiseCtor);\n      return new promiseCtor((resolve, reject) => {\n        let subscription;\n        subscription = this.subscribe(value => {\n          try {\n            next(value);\n          } catch (err) {\n            reject(err);\n\n            if (subscription) {\n              subscription.unsubscribe();\n            }\n          }\n        }, reject, resolve);\n      });\n    }\n\n    _subscribe(subscriber) {\n      const {\n        source\n      } = this;\n      return source && source.subscribe(subscriber);\n    }\n\n    [Symbol_observable]() {\n      return this;\n    }\n\n    pipe(...operations) {\n      if (operations.length === 0) {\n        return this;\n      }\n\n      return pipeFromArray(operations)(this);\n    }\n\n    toPromise(promiseCtor) {\n      promiseCtor = getPromiseCtor(promiseCtor);\n      return new promiseCtor((resolve, reject) => {\n        let value;\n        this.subscribe(x => value = x, err => reject(err), () => resolve(value));\n      });\n    }\n\n  }\n\n  Observable.create = subscribe => {\n    return new Observable(subscribe);\n  };\n\n  return Observable;\n})();\n\nfunction getPromiseCtor(promiseCtor) {\n  if (!promiseCtor) {\n    promiseCtor = config.Promise || Promise;\n  }\n\n  if (!promiseCtor) {\n    throw new Error('no Promise impl found');\n  }\n\n  return promiseCtor;\n} //# sourceMappingURL=Observable.js.map","map":null,"metadata":{},"sourceType":"module"}