MCPcopy
hub / github.com/prisma/prisma / startNodeStudioServer

Function startNodeStudioServer

packages/cli/src/studio-server.ts:32–59  ·  view source on GitHub ↗
({ handler, onListen, port }: StartStudioServerOptions)

Source from the content-addressed store, hash-verified

30}
31
32function startNodeStudioServer({ handler, onListen, port }: StartStudioServerOptions): StudioServer {
33 const server = createServer(async (nodeRequest, nodeResponse) => {
34 try {
35 const request = createNodeRequest(nodeRequest, port)
36 const response = await handler(request)
37 await writeNodeResponse(nodeResponse, response, nodeRequest.method)
38 } catch (error) {
39 console.error('[Prisma Studio]', error)
40
41 if (nodeResponse.headersSent || nodeResponse.writableEnded) {
42 nodeResponse.destroy()
43 return
44 }
45
46 nodeResponse.statusCode = 500
47 nodeResponse.setHeader('Access-Control-Allow-Origin', '*')
48 nodeResponse.end(error instanceof Error ? error.message : 'Internal Server Error')
49 }
50 })
51
52 server.listen(port, onListen)
53
54 return {
55 close() {
56 server.close()
57 },
58 }
59}
60
61function createNodeRequest(nodeRequest: IncomingMessage, port: number): Request {
62 const origin = `http://${nodeRequest.headers.host ?? `localhost:${port}`}`

Callers 1

startStudioServerFunction · 0.85

Calls 4

createNodeRequestFunction · 0.85
writeNodeResponseFunction · 0.85
errorMethod · 0.80
endMethod · 0.80

Tested by

no test coverage detected