import type { CodegenConfig } from '@graphql-codegen/cli' // 🩡 ДинамичСская модСль Π²Ρ‹Π±ΠΎΡ€Π° источника схСмы с Π°Π½Ρ‚ΠΈΡ…Ρ€ΡƒΠΏΠΊΠΎΡΡ‚ΡŒΡŽ const getSchemaSource = () => { // Π’ CI ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для избСТания сСтСвых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ if (process.env.CI === 'true') { console.log('πŸ”§ CI Ρ€Π΅ΠΆΠΈΠΌ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ схСмы') return ['schema/*.graphql'] } // Π’ dev Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ схСму для Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ console.log('🌐 Dev Ρ€Π΅ΠΆΠΈΠΌ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ схСму') return 'https://v3.dscrs.site/graphql' } const config: CodegenConfig = { overwrite: true, // Адаптивный Π²Ρ‹Π±ΠΎΡ€ источника схСмы schema: getSchemaSource(), documents: ['panel/graphql/queries/**/*.ts', 'panel/**/*.{ts,tsx}', '!panel/graphql/generated/**'], generates: { './panel/graphql/generated/introspection.json': { plugins: ['introspection'], config: { minify: true } }, './panel/graphql/generated/schema.graphql': { plugins: ['schema-ast'], config: { includeDirectives: false } }, './panel/graphql/generated/': { preset: 'client', plugins: [], presetConfig: { gqlTagName: 'gql', fragmentMasking: false }, config: { scalars: { DateTime: 'string', JSON: 'Record' }, // Настройки для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ skipTypename: false, useTypeImports: true, dedupeOperationSuffix: true, dedupeFragments: true, // ИзбСгаСм ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ объСдинСнии avoidOptionals: false, enumsAsTypes: false } } }, // Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ настройки для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ config: { skipTypename: false, useTypeImports: true, dedupeOperationSuffix: true, dedupeFragments: true, // Настройки для объСдинСния схСм avoidOptionals: false, enumsAsTypes: false } } export default config