MCPcopy
hub / github.com/redwoodjs/graphql / handler

Function handler

packages/cli/src/commands/buildHandler.js:18–168  ·  view source on GitHub ↗
({
  side = ['api', 'web'],
  verbose = false,
  prisma = true,
  prerender,
})

Source from the content-addressed store, hash-verified

16import { generatePrismaCommand } from '../lib/generatePrismaClient'
17
18export const handler = async ({
19 side = ['api', 'web'],
20 verbose = false,
21 prisma = true,
22 prerender,
23}) => {
24 recordTelemetryAttributes({
25 command: 'build',
26 side: JSON.stringify(side),
27 verbose,
28 prisma,
29 prerender,
30 })
31
32 const rwjsPaths = getPaths()
33 const rwjsConfig = getConfig()
34 const useFragments = rwjsConfig.graphql?.fragments
35 const useTrustedDocuments = rwjsConfig.graphql?.trustedDocuments
36
37 const prismaSchemaExists = fs.existsSync(rwjsPaths.api.dbSchema)
38 const prerenderRoutes =
39 prerender && side.includes('web') ? detectPrerenderRoutes() : []
40 const shouldGeneratePrismaClient =
41 prisma &&
42 prismaSchemaExists &&
43 (side.includes('api') || prerenderRoutes.length > 0)
44
45 const tasks = [
46 shouldGeneratePrismaClient && {
47 title: 'Generating Prisma Client...',
48 task: () => {
49 const { cmd, args } = generatePrismaCommand(rwjsPaths.api.dbSchema)
50 return execa(cmd, args, {
51 stdio: verbose ? 'inherit' : 'pipe',
52 shell: true,
53 cwd: rwjsPaths.api.base,
54 })
55 },
56 },
57 // If using GraphQL Fragments or Trusted Documents, then we need to use
58 // codegen to generate the types needed for possible types and the
59 // trusted document store hashes
60 (useFragments || useTrustedDocuments) && {
61 title: `Generating types needed for ${[
62 useFragments && 'GraphQL Fragments',
63 useTrustedDocuments && 'Trusted Documents',
64 ]
65 .filter(Boolean)
66 .join(' and ')} support...`,
67 task: async () => {
68 await generate()
69 },
70 },
71 side.includes('api') && {
72 title: 'Verifying graphql schema...',
73 task: loadAndValidateSdls,
74 },
75 side.includes('api') && {

Callers

nothing calls this directly

Calls 11

getPathsFunction · 0.90
getConfigFunction · 0.90
detectPrerenderRoutesFunction · 0.90
generatePrismaCommandFunction · 0.90
generateFunction · 0.90
timedTelemetryFunction · 0.90
triggerPrerenderFunction · 0.85
existsSyncMethod · 0.65
errorMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected