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

Method start

packages/event-bus/src/server/server.ts:202–337  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

200 }
201
202 start(): Promise<number> {
203 return new Promise((resolve) => {
204 if (process.env.NODE_ENV !== 'development') {
205 resolve(this.#port)
206 return
207 }
208 if (this.#server || this.#wssServer) {
209 // console.warn('Server is already running')
210 resolve(this.#port)
211 return
212 }
213
214 this.#eventTarget.addEventListener(
215 'tanstack-dispatch-event',
216 this.#dispatcher,
217 )
218 this.#eventTarget.addEventListener(
219 'tanstack-connect',
220 this.#connectFunction,
221 )
222
223 // When an external server is provided (e.g. Vite's HTTPS server),
224 // piggyback on it instead of creating a standalone server.
225 if (this.#externalServer) {
226 this.debugLog('Piggybacking on external HTTP server')
227 const wss = this.createWebSocketServer()
228 this.handleNewConnection(wss)
229
230 // Add request handler for SSE and POST endpoints
231 this.#externalRequestHandler = (
232 req: http.IncomingMessage,
233 res: http.ServerResponse,
234 ) => {
235 if (req.url === '/__devtools/sse') {
236 res.writeHead(200, {
237 'Content-Type': 'text/event-stream',
238 'Cache-Control': 'no-cache',
239 Connection: 'keep-alive',
240 'Access-Control-Allow-Origin': '*',
241 })
242 res.write('\n')
243 this.debugLog('New SSE client connected (external server)')
244 this.#sseClients.add(res)
245 req.on('close', () => this.#sseClients.delete(res))
246 return
247 }
248
249 if (req.url === '/__devtools/send' && req.method === 'POST') {
250 let body = ''
251 req.on('data', (chunk) => (body += chunk))
252 req.on('end', () => {
253 try {
254 const msg = parseWithBigInt(body)
255 this.debugLog(
256 'Received event from client (external server)',
257 msg,
258 )
259 this.emitToServer(msg)

Callers 1

configureServerFunction · 0.95

Calls 8

debugLogMethod · 0.95
createWebSocketServerMethod · 0.95
handleNewConnectionMethod · 0.95
emitToServerMethod · 0.95
createSSEServerMethod · 0.95
parseWithBigIntFunction · 0.90
onMethod · 0.45
emitMethod · 0.45

Tested by

no test coverage detected