123456789101112131415161718192021222324252627 |
- 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
|