{"ast":null,"code":"import { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n  return function catchErrorOperatorFunction(source) {\n    const operator = new CatchOperator(selector);\n    const caught = source.lift(operator);\n    return operator.caught = caught;\n  };\n}\n\nclass CatchOperator {\n  constructor(selector) {\n    this.selector = selector;\n  }\n\n  call(subscriber, source) {\n    return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n  }\n\n}\n\nclass CatchSubscriber extends OuterSubscriber {\n  constructor(destination, selector, caught) {\n    super(destination);\n    this.selector = selector;\n    this.caught = caught;\n  }\n\n  error(err) {\n    if (!this.isStopped) {\n      let result;\n\n      try {\n        result = this.selector(err, this.caught);\n      } catch (err2) {\n        super.error(err2);\n        return;\n      }\n\n      this._unsubscribeAndRecycle();\n\n      const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n      this.add(innerSubscriber);\n      const innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n\n      if (innerSubscription !== innerSubscriber) {\n        this.add(innerSubscription);\n      }\n    }\n  }\n\n} //# sourceMappingURL=catchError.js.map","map":null,"metadata":{},"sourceType":"module"}