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