MCPcopy
hub / github.com/prisma/prisma / handleStudioBffRequest

Function handleStudioBffRequest

packages/cli/src/Studio.ts:543–614  ·  view source on GitHub ↗
(payload: unknown, executor: Executor)

Source from the content-addressed store, hash-verified

541}
542
543async function handleStudioBffRequest(payload: unknown, executor: Executor): Promise<Response> {
544 const request = payload as StudioBFFRequest
545 const { procedure } = request
546
547 if (procedure === 'query') {
548 const [error, results] = await executor.execute(request.query)
549
550 if (error) {
551 return jsonResponse([serializeBffError(error)])
552 }
553
554 return jsonResponse([null, results])
555 }
556
557 if (procedure === 'sequence') {
558 if (!('executeSequence' in executor)) {
559 return jsonResponse([[serializeBffError(new Error('Executor does not support sequences'))]])
560 }
561
562 const [[error0, result0], maybeResult1] = await (executor as SequenceExecutor).executeSequence(request.sequence)
563
564 if (error0) {
565 return jsonResponse([[serializeBffError(error0)]])
566 }
567
568 const [error1, result1] = maybeResult1 || []
569
570 if (error1) {
571 return jsonResponse([[null, result0], [serializeBffError(error1)]])
572 }
573
574 return jsonResponse([
575 [null, result0],
576 [null, result1],
577 ])
578 }
579
580 if (procedure === 'transaction') {
581 if (!executor.executeTransaction) {
582 return jsonResponse([serializeBffError(new Error('Executor does not support transactions'))])
583 }
584
585 const [error, results] = await executor.executeTransaction(request.queries)
586
587 if (error) {
588 return jsonResponse([serializeBffError(error)])
589 }
590
591 return jsonResponse([null, results])
592 }
593
594 if (procedure === 'sql-lint') {
595 if (!executor.lintSql) {
596 return jsonResponse([serializeBffError(new Error('Executor does not support SQL lint'))])
597 }
598
599 const [error, result] = await executor.lintSql({
600 schemaVersion: request.schemaVersion,

Callers 1

Calls 4

jsonResponseFunction · 0.85
serializeBffErrorFunction · 0.85
textResponseFunction · 0.85
executeMethod · 0.65

Tested by

no test coverage detected