31 lines
599 B
TypeScript
31 lines
599 B
TypeScript
import {Emitter} from '@welshman/lib'
|
|
import {Relay, LOCAL_RELAY_URL} from '@welshman/util'
|
|
import type {Message} from '../Socket'
|
|
|
|
export class Local extends Emitter {
|
|
constructor(readonly relay: Relay) {
|
|
super()
|
|
|
|
relay.on('*', this.onMessage)
|
|
}
|
|
|
|
get connections() {
|
|
return []
|
|
}
|
|
|
|
send(...payload: Message) {
|
|
this.relay.send(...payload)
|
|
}
|
|
|
|
onMessage = (...message: Message) => {
|
|
const [verb, ...payload] = message
|
|
|
|
this.emit(verb, LOCAL_RELAY_URL, ...payload)
|
|
}
|
|
|
|
cleanup = () => {
|
|
this.removeAllListeners()
|
|
this.relay.off('*', this.onMessage)
|
|
}
|
|
}
|