MCPcopy Index your code
hub / github.com/TanStack/devtools / handleDevToolsViteRequest

Function handleDevToolsViteRequest

packages/devtools-vite/src/utils.ts:19–133  ·  view source on GitHub ↗
(
  req: Connect.IncomingMessage,
  res: ServerResponse<IncomingMessage>,
  next: Connect.NextFunction,
  cbOrOptions: DevToolsRequestHandler | DevToolsViteRequestOptions,
)

Source from the content-addressed store, hash-verified

17}
18
19export const handleDevToolsViteRequest = (
20 req: Connect.IncomingMessage,
21 res: ServerResponse<IncomingMessage>,
22 next: Connect.NextFunction,
23 cbOrOptions: DevToolsRequestHandler | DevToolsViteRequestOptions,
24) => {
25 // Normalize to options object for backward compatibility
26 const options: DevToolsViteRequestOptions =
27 typeof cbOrOptions === 'function'
28 ? { onOpenSource: cbOrOptions }
29 : cbOrOptions
30
31 // Handle open-source requests
32 if (req.url?.includes('__tsd/open-source')) {
33 const searchParams = new URLSearchParams(req.url.split('?')[1])
34
35 const source = searchParams.get('source')
36 if (!source) {
37 return
38 }
39
40 const parsed = parseOpenSourceParam(source)
41 if (!parsed) {
42 return
43 }
44 const { file, line, column } = parsed
45
46 options.onOpenSource?.({
47 type: 'open-source',
48 routine: 'open-source',
49 data: {
50 source: file ? normalizePath(`${process.cwd()}/${file}`) : undefined,
51 line,
52 column,
53 },
54 })
55 res.setHeader('Content-Type', 'text/html')
56 res.write(`<script> window.close(); </script>`)
57 res.end()
58 return
59 }
60
61 // Handle console-pipe SSE endpoint (browser subscribes to server logs)
62 if (req.url?.includes('__tsd/console-pipe/sse') && req.method === 'GET') {
63 if (options.onConsolePipeSSE) {
64 options.onConsolePipeSSE(res, req)
65 return
66 }
67 return next()
68 }
69
70 // Handle server console-pipe POST endpoint (from app server runtime)
71 if (req.url?.includes('__tsd/console-pipe/server') && req.method === 'POST') {
72 if (options.onServerConsolePipe) {
73 let body = ''
74 req.on('data', (chunk: Buffer) => {
75 body += chunk.toString()
76 })

Callers 2

configureServerFunction · 0.90
utils.test.tsFile · 0.90

Calls 2

parseOpenSourceParamFunction · 0.85
onMethod · 0.45

Tested by

no test coverage detected