"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.using = void 0; var Observable_1 = require("../Observable"); var innerFrom_1 = require("./innerFrom"); var empty_1 = require("./empty"); function using(resourceFactory, observableFactory) { return new Observable_1.Observable(function (subscriber) { var resource = resourceFactory(); var result = observableFactory(resource); var source = result ? innerFrom_1.innerFrom(result) : empty_1.EMPTY; source.subscribe(subscriber); return function () { if (resource) { resource.unsubscribe(); } }; }); } exports.using = using; //# sourceMappingURL=using.js.map