/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ import { Observable } from '../Observable'; import { from } from './from'; import { EMPTY } from './empty'; export function using(resourceFactory, observableFactory) { return new Observable(function (subscriber) { var resource; try { resource = resourceFactory(); } catch (err) { subscriber.error(err); return undefined; } var result; try { result = observableFactory(resource); } catch (err) { subscriber.error(err); return undefined; } var source = result ? from(result) : EMPTY; var subscription = source.subscribe(subscriber); return function () { subscription.unsubscribe(); if (resource) { resource.unsubscribe(); } }; }); } //# sourceMappingURL=using.js.map