(ws: WebSocket, event: Event)
| 100 | } |
| 101 | |
| 102 | export async function publishEvent(ws: WebSocket, event: Event): Promise<CommandResult> { |
| 103 | return new Promise<CommandResult>((resolve, reject) => { |
| 104 | const observable = streams.get(ws) as Observable<OutgoingMessage> |
| 105 | |
| 106 | const sub = observable.subscribe((message: OutgoingMessage) => { |
| 107 | if (message[0] === MessageType.OK && message[1] === event.id) { |
| 108 | sub.unsubscribe() |
| 109 | resolve(message) |
| 110 | } else if (message[0] === MessageType.NOTICE) { |
| 111 | sub.unsubscribe() |
| 112 | reject(new Error(message[1])) |
| 113 | } |
| 114 | }) |
| 115 | |
| 116 | ws.send(JSON.stringify(['EVENT', event]), (err) => { |
| 117 | if (err) { |
| 118 | sub.unsubscribe() |
| 119 | reject(err) |
| 120 | } |
| 121 | }) |
| 122 | }) |
| 123 | } |
| 124 | |
| 125 | export async function sendEvent(ws: WebSocket, event: Event, successful = true) { |
| 126 | const result = await publishEvent(ws, event) |
no outgoing calls
no test coverage detected