1import type { IncomingMessage, ServerResponse } from 'http';
2
3// Middleware to suppress `EISDIR` error when opening javascript inspector in remote debugging.
4// A workaround for https://github.com/facebook/react-native/issues/28844
5// The root cause is that metro cannot serve sourcemap requests for /debugger-ui/
6export function suppressRemoteDebuggingErrorMiddleware(
7  req: IncomingMessage,
8  res: ServerResponse,
9  next: (err?: Error) => void
10) {
11  if (req.url?.match(/\/debugger-ui\/.+\.map$/)) {
12    res.writeHead(404);
13    res.end('Sourcemap for /debugger-ui/ is not supported.');
14    return;
15  }
16  next();
17}
18