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