frontend/.pnpm-store/v3/files/38/4e99a2cea8ce55a2e2779f6f8130dd6374d5f5cd9675daae6d99da8c804fb7e073ce54f67c1a32243474dfb337358f21a545b51f8161eaf5dd759b25b49ec8

31 lines
1.2 KiB
Plaintext

"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