(message: unknown)
| 164 | } |
| 165 | |
| 166 | const onMessage = (message: unknown) => { |
| 167 | if (!isRecord(message)) { |
| 168 | return |
| 169 | } |
| 170 | |
| 171 | let result: T | undefined |
| 172 | try { |
| 173 | result = extract(message) |
| 174 | } catch (error) { |
| 175 | finish(() => reject(error instanceof Error ? error : new Error(String(error)))) |
| 176 | return |
| 177 | } |
| 178 | |
| 179 | if (result !== undefined) { |
| 180 | finish(() => resolve(result)) |
| 181 | } |
| 182 | } |
| 183 | |
| 184 | const offError = host.client.on("error", (error) => { |
| 185 | finish(() => reject(error)) |