( channel: DesktopRequestChannel, request: http.IncomingMessage, response: http.ServerResponse, )
| 255 | } |
| 256 | |
| 257 | async function handleBridgeRequest( |
| 258 | channel: DesktopRequestChannel, |
| 259 | request: http.IncomingMessage, |
| 260 | response: http.ServerResponse, |
| 261 | ) { |
| 262 | const handler = handlers[channel] |
| 263 | if (!handler) { |
| 264 | sendJson(response, 404, { error: `Unknown desktop request channel: ${channel}` }) |
| 265 | return |
| 266 | } |
| 267 | |
| 268 | try { |
| 269 | const params = await readJsonBody(request) |
| 270 | const result = await (handler as (params: unknown) => Promise<unknown> | unknown)(params) |
| 271 | sendJson(response, 200, result ?? null) |
| 272 | } catch (error) { |
| 273 | console.error('dev:web bridge request failed', { channel, error }) |
| 274 | sendJson(response, 500, { |
| 275 | error: error instanceof Error ? error.message : 'Desktop bridge request failed.', |
| 276 | }) |
| 277 | } |
| 278 | } |
| 279 | |
| 280 | function hasValidBridgeToken(request: http.IncomingMessage) { |
| 281 | return bridgeToken.length > 0 && request.headers['x-howcode-dev-web-bridge-token'] === bridgeToken |
no test coverage detected