Files
core/codegen.ts
Untone 03626ec20d
Some checks failed
Deploy on push / deploy (push) Failing after 31s
panelfix
2025-09-27 13:20:56 +03:00

70 lines
2.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<string, any>'
},
// Настройки для правильной работы
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