diff --git a/graphql/codegen/src/cli/index.ts b/graphql/codegen/src/cli/index.ts index 6eda80c87..1a36a11e9 100644 --- a/graphql/codegen/src/cli/index.ts +++ b/graphql/codegen/src/cli/index.ts @@ -9,7 +9,7 @@ import { CLI, CLIOptions, getPackageJson, Inquirerer } from 'inquirerer'; import { findConfigFile, loadConfigFile } from '../core/config'; import { generate } from '../core/generate'; -import type { GraphQLSDKConfigTarget } from '../types/config'; +import { mergeConfig, type GraphQLSDKConfigTarget } from '../types/config'; import { buildDbConfig, buildGenerateOptions, @@ -114,11 +114,9 @@ export const commands = async ( let hasError = false; for (const name of names) { console.log(`\n[${name}]`); - const targetConfig = { ...targets[name], ...cliOptions } as GraphQLSDKConfigTarget; - if (targets[name].db && targetConfig.db) { - targetConfig.db = { ...targets[name].db, ...targetConfig.db }; - } - const result = await generate(targetConfig); + const result = await generate( + mergeConfig(targets[name], cliOptions as GraphQLSDKConfigTarget), + ); printResult(result); if (!result.success) hasError = true; } diff --git a/graphql/codegen/src/cli/shared.ts b/graphql/codegen/src/cli/shared.ts index d6e219aa1..b7c7e0875 100644 --- a/graphql/codegen/src/cli/shared.ts +++ b/graphql/codegen/src/cli/shared.ts @@ -9,7 +9,7 @@ import { inflektTree } from 'inflekt/transform-keys'; import type { Question } from 'inquirerer'; import type { GenerateResult } from '../core/generate'; -import type { GraphQLSDKConfigTarget } from '../types/config'; +import { mergeConfig, type GraphQLSDKConfigTarget } from '../types/config'; export const splitCommas = ( input: string | undefined, @@ -262,9 +262,5 @@ export function buildGenerateOptions( const camelized = camelizeArgv(answers); const normalized = normalizeCodegenListOptions(camelized); const withDb = buildDbConfig(normalized); - const merged = { ...fileConfig, ...withDb } as GraphQLSDKConfigTarget; - if (fileConfig.db && merged.db) { - merged.db = { ...fileConfig.db, ...merged.db }; - } - return merged; + return mergeConfig(fileConfig, withDb as GraphQLSDKConfigTarget); }