diff --git a/src/module.ts b/src/module.ts index ddaef5d..9ba2d88 100644 --- a/src/module.ts +++ b/src/module.ts @@ -256,15 +256,33 @@ export default defineNuxtModule({ nitro.externals.inline = nitro.externals.inline || [] nitro.externals.inline.push(resolver.resolve('runtime')) - const clientSdks = Object.entries(ctx.clientDocs || {}).reduce((acc, [client, docs]) => { - const entries = extractGqlOperations(docs) + let clientSdksCode: string - return [...acc, `${client}: ` + mockTemplate(entries).replace('export ', '')] - }, []) + if (ctx.codegen) { + // When codegen is enabled, import the generated SDK + const clientImports = Object.keys(ctx.clientDocs || {}).map(client => + `import { getSdk as ${client}Sdk } from '#gql/${client}'` + ).join('\n') + + const clientSdkEntries = Object.keys(ctx.clientDocs || {}).map(client => + `${client}: ${client}Sdk` + ).join(',\n ') + + clientSdksCode = `${clientImports}\n\nconst clientSdks = {\n ${clientSdkEntries}\n}` + } + else { + // When codegen is disabled, use mockTemplate as before + const clientSdks = Object.entries(ctx.clientDocs || {}).reduce((acc, [client, docs]) => { + const entries = extractGqlOperations(docs) + return [...acc, `${client}: ` + mockTemplate(entries).replace('export ', '')] + }, []) + + clientSdksCode = 'const clientSdks = {' + clientSdks + '}' + } nitro.virtual = nitro.virtual || {} nitro.virtual['#gql-nitro'] = [ - 'const clientSdks = {' + clientSdks + '}', + clientSdksCode, 'const config = ' + JSON.stringify(config.clients), 'const ops = ' + JSON.stringify(ctx.clientOps), 'const clients = {}',