Add connect directory, update readme

This commit is contained in:
Jon Staab
2024-02-02 12:35:38 -08:00
parent c7e3acb657
commit ee375813e4
12 changed files with 54 additions and 39 deletions
+26
View File
@@ -0,0 +1,26 @@
import type {Target} from '../Executor'
import type {Message} from '../connect/Socket'
import {Emitter} from '../util/Emitter'
export class Multi extends Emitter {
constructor(readonly targets: Target[]) {
super()
targets.forEach(t => {
t.on('*', (verb, ...args) => this.emit(verb, ...args))
})
}
get connections() {
return this.targets.flatMap(t => t.connections)
}
send(...payload: Message) {
this.targets.forEach(t => t.send(...payload))
}
cleanup = () => {
this.removeAllListeners()
this.targets.forEach(t => t.cleanup())
}
}