hugoWebsite/node_modules/rxjs/dist/cjs/internal/observable/connectable.js

31 lines
1.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.connectable = void 0;
var Subject_1 = require("../Subject");
var Observable_1 = require("../Observable");
var defer_1 = require("./defer");
var DEFAULT_CONFIG = {
connector: function () { return new Subject_1.Subject(); },
resetOnDisconnect: true,
};
function connectable(source, config) {
if (config === void 0) { config = DEFAULT_CONFIG; }
var connection = null;
var connector = config.connector, _a = config.resetOnDisconnect, resetOnDisconnect = _a === void 0 ? true : _a;
var subject = connector();
var result = new Observable_1.Observable(function (subscriber) {
return subject.subscribe(subscriber);
});
result.connect = function () {
if (!connection || connection.closed) {
connection = defer_1.defer(function () { return source; }).subscribe(subject);
if (resetOnDisconnect) {
connection.add(function () { return (subject = connector()); });
}
}
return connection;
};
return result;
}
exports.connectable = connectable;
//# sourceMappingURL=connectable.js.map