Files
webapp/codegen.ts
Ruslan Bakiev 25f946b293
All checks were successful
Build Docker Image / build (push) Successful in 5m46s
Fix geo GraphQL schema mismatch: camelCase → snake_case
All geo .graphql operations and consuming code updated to match
server schema which uses snake_case field/argument names.
Removed non-existent QuoteCalculations query, using NearestOffers instead.
2026-03-09 21:45:57 +07:00

92 lines
2.8 KiB
TypeScript

import type { CodegenConfig } from '@graphql-codegen/cli'
const plugins = [
'typescript',
'typescript-operations',
'typed-document-node',
]
const pluginConfig = {
scalars: {
DateTime: 'string',
Date: 'string',
Decimal: 'string',
JSONString: 'Record<string, unknown>',
JSON: 'Record<string, unknown>',
UUID: 'string',
BigInt: 'string',
},
useTypeImports: true,
strictScalars: true,
// Add suffix to operation result types to avoid conflicts with schema types
operationResultSuffix: 'Result',
}
const config: CodegenConfig = {
overwrite: true,
allowPartialOutputs: true,
generates: {
// Public operations (no token)
'./app/composables/graphql/public/exchange-generated.ts': {
schema: 'https://exchange.optovia.ru/graphql/public/',
documents: './graphql/operations/public/exchange/*.graphql',
plugins,
config: pluginConfig,
},
'./app/composables/graphql/public/geo-generated.ts': {
schema: 'https://geo.optovia.ru/graphql/public/',
documents: './graphql/operations/public/geo/*.graphql',
plugins,
config: pluginConfig,
},
'./app/composables/graphql/public/kyc-generated.ts': {
schema: 'https://kyc.optovia.ru/graphql/public/',
documents: './graphql/operations/public/kyc/*.graphql',
plugins,
config: pluginConfig,
},
// User-level operations (ID Token)
'./app/composables/graphql/user/teams-generated.ts': {
schema: 'https://teams.optovia.ru/graphql/user/',
documents: './graphql/operations/user/teams/*.graphql',
plugins,
config: pluginConfig,
},
'./app/composables/graphql/user/kyc-generated.ts': {
schema: 'https://kyc.optovia.ru/graphql/user/',
documents: './graphql/operations/user/kyc/*.graphql',
plugins,
config: pluginConfig,
},
// Team-level operations (Access Token)
'./app/composables/graphql/team/teams-generated.ts': {
schema: 'https://teams.optovia.ru/graphql/team/',
documents: './graphql/operations/team/teams/*.graphql',
plugins,
config: pluginConfig,
},
'./app/composables/graphql/team/orders-generated.ts': {
schema: 'https://orders.optovia.ru/graphql/team/',
documents: './graphql/operations/team/orders/*.graphql',
plugins,
config: pluginConfig,
},
'./app/composables/graphql/team/exchange-generated.ts': {
schema: 'https://exchange.optovia.ru/graphql/team/',
documents: './graphql/operations/team/exchange/*.graphql',
plugins,
config: pluginConfig,
},
'./app/composables/graphql/team/billing-generated.ts': {
schema: 'https://billing.optovia.ru/graphql/team/',
documents: './graphql/operations/team/billing/*.graphql',
plugins,
config: pluginConfig,
},
},
}
export default config