/** PURE_IMPORTS_START .._Observable,.._util_subscribeToResult,.._OuterSubscriber PURE_IMPORTS_END */ var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; import { Observable } from '../Observable'; import { subscribeToResult } from '../util/subscribeToResult'; import { OuterSubscriber } from '../OuterSubscriber'; /** * We need this JSDoc comment for affecting ESDoc. * @extends {Ignored} * @hide true */ export var UsingObservable = /*@__PURE__*/ (/*@__PURE__*/ function (_super) { __extends(UsingObservable, _super); function UsingObservable(resourceFactory, observableFactory) { _super.call(this); this.resourceFactory = resourceFactory; this.observableFactory = observableFactory; } UsingObservable.create = function (resourceFactory, observableFactory) { return new UsingObservable(resourceFactory, observableFactory); }; /** @deprecated internal use only */ UsingObservable.prototype._subscribe = function (subscriber) { var _a = this, resourceFactory = _a.resourceFactory, observableFactory = _a.observableFactory; var resource; try { resource = resourceFactory(); return new UsingSubscriber(subscriber, resource, observableFactory); } catch (err) { subscriber.error(err); } }; return UsingObservable; }(Observable)); var UsingSubscriber = /*@__PURE__*/ (/*@__PURE__*/ function (_super) { __extends(UsingSubscriber, _super); function UsingSubscriber(destination, resource, observableFactory) { _super.call(this, destination); this.resource = resource; this.observableFactory = observableFactory; destination.add(resource); this.tryUse(); } UsingSubscriber.prototype.tryUse = function () { try { var source = this.observableFactory.call(this, this.resource); if (source) { this.add(subscribeToResult(this, source)); } } catch (err) { this._error(err); } }; return UsingSubscriber; }(OuterSubscriber)); //# sourceMappingURL=UsingObservable.js.map