| "use strict"; | 
| Object.defineProperty(exports, "__esModule", { value: true }); | 
| var Observable_1 = require("../Observable"); | 
| var from_1 = require("./from"); | 
| var empty_1 = require("./empty"); | 
| function using(resourceFactory, observableFactory) { | 
|     return new Observable_1.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_1.from(result) : empty_1.EMPTY; | 
|         var subscription = source.subscribe(subscriber); | 
|         return function () { | 
|             subscription.unsubscribe(); | 
|             if (resource) { | 
|                 resource.unsubscribe(); | 
|             } | 
|         }; | 
|     }); | 
| } | 
| exports.using = using; | 
| //# sourceMappingURL=using.js.map |