diff options
Diffstat (limited to 'node_modules/rxjs/dist/cjs/internal/observable/connectable.js')
| -rw-r--r-- | node_modules/rxjs/dist/cjs/internal/observable/connectable.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/cjs/internal/observable/connectable.js b/node_modules/rxjs/dist/cjs/internal/observable/connectable.js new file mode 100644 index 0000000..5952e6a --- /dev/null +++ b/node_modules/rxjs/dist/cjs/internal/observable/connectable.js @@ -0,0 +1,31 @@ +"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
\ No newline at end of file |
