This commit is contained in:
root
2023-07-30 22:05:51 +02:00
parent 65a0be1350
commit 06acaecee1
12267 changed files with 671638 additions and 15 deletions

View File

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