diff options
Diffstat (limited to 'node_modules/rxjs/dist/esm5/internal/observable/connectable.js')
| -rw-r--r-- | node_modules/rxjs/dist/esm5/internal/observable/connectable.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm5/internal/observable/connectable.js b/node_modules/rxjs/dist/esm5/internal/observable/connectable.js new file mode 100644 index 0000000..3600641 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/observable/connectable.js @@ -0,0 +1,27 @@ +import { Subject } from '../Subject'; +import { Observable } from '../Observable'; +import { defer } from './defer'; +var DEFAULT_CONFIG = { + connector: function () { return new Subject(); }, + resetOnDisconnect: true, +}; +export 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(function (subscriber) { + return subject.subscribe(subscriber); + }); + result.connect = function () { + if (!connection || connection.closed) { + connection = defer(function () { return source; }).subscribe(subject); + if (resetOnDisconnect) { + connection.add(function () { return (subject = connector()); }); + } + } + return connection; + }; + return result; +} +//# sourceMappingURL=connectable.js.map
\ No newline at end of file |
