import { type CodegenConfig } from '@graphql-codegen/cli'; import { addTypenameSelectionDocumentTransform } from '@graphql-codegen/client-preset'; const config: CodegenConfig = { schema: './packages/services/api/src/modules/*/module.graphql.ts', emitLegacyCommonJSImports: true, generates: { // API './packages/services/api/src/modules': { preset: 'graphql-modules', plugins: ['typescript', 'typescript-resolvers'], presetConfig: { baseTypesPath: '../__generated__/types.ts', filename: '__generated__/types.ts', encapsulateModuleTypes: 'namespace', }, config: { immutableTypes: true, contextType: 'GraphQLModules.ModuleContext', enumValues: { ProjectType: '../shared/entities#ProjectType', NativeFederationCompatibilityStatus: '../shared/entities#NativeFederationCompatibilityStatus', TargetAccessScope: '../modules/auth/providers/target-access#TargetAccessScope', ProjectAccessScope: '../modules/auth/providers/project-access#ProjectAccessScope', OrganizationAccessScope: '../modules/auth/providers/organization-access#OrganizationAccessScope', SupportTicketPriority: '../shared/entities#SupportTicketPriority', SupportTicketStatus: '../shared/entities#SupportTicketStatus', }, scalars: { DateTime: 'string', Date: 'string', SafeInt: 'number', ID: 'string', }, mappers: { SchemaChange: '../modules/schema/module.graphql.mappers#SchemaChangeMapper', SchemaChangeApproval: '../modules/schema/module.graphql.mappers#SchemaChangeApprovalMapper', SchemaChangeConnection: '../modules/schema/module.graphql.mappers#SchemaChangeConnectionMapper', SchemaErrorConnection: '../modules/schema/module.graphql.mappers#SchemaErrorConnectionMapper', SchemaWarningConnection: '../modules/schema/module.graphql.mappers#SchemaWarningConnectionMapper', OrganizationConnection: '../modules/organization/module.graphql.mappers#OrganizationConnectionMapper', UserConnection: '../modules/auth/module.graphql.mappers#UserConnectionMapper', ActivityConnection: '../modules/activity/module.graphql.mappers#ActivityConnectionMapper', MemberConnection: '../modules/auth/module.graphql.mappers#MemberConnectionMapper', ProjectConnection: '../modules/project/module.graphql.mappers#ProjectConnectionMapper', TargetConnection: '../modules/target/module.graphql.mappers#TargetConnectionMapper', SchemaConnection: '../modules/schema/module.graphql.mappers#SchemaConnectionMapper', TokenConnection: '../modules/token/module.graphql.mappers#TokenConnectionMapper', OperationStatsValuesConnection: '../modules/operations/module.graphql.mappers#OperationStatsValuesConnectionMapper', ClientStatsValuesConnection: '../modules/operations/module.graphql.mappers#ClientStatsValuesConnectionMapper', SchemaCoordinateStats: '../modules/operations/module.graphql.mappers#SchemaCoordinateStatsMapper', ClientStats: '../modules/operations/module.graphql.mappers#ClientStatsMapper', OperationsStats: '../modules/operations/module.graphql.mappers#OperationsStatsMapper', DurationValues: '../modules/operations/module.graphql.mappers#DurationValuesMapper', SchemaVersionConnection: '../modules/schema/module.graphql.mappers#SchemaVersionConnectionMapper', SchemaVersion: '../modules/schema/module.graphql.mappers#SchemaVersionMapper', Schema: '../modules/schema/module.graphql.mappers#SchemaMapper', SingleSchema: '../modules/schema/module.graphql.mappers#SingleSchemaMapper', CompositeSchema: '../modules/schema/module.graphql.mappers#CompositeSchemaMapper', Organization: '../modules/organization/module.graphql.mappers#OrganizationMapper', Project: '../modules/project/module.graphql.mappers#ProjectMapper', Target: '../modules/target/module.graphql.mappers#TargetMapper', Member: '../modules/auth/module.graphql.mappers#MemberMapper', MemberRole: '../modules/organization/module.graphql.mappers#MemberRoleMapper', Token: '../modules/token/module.graphql.mappers#TokenMapper', TokenInfo: '../modules/token/module.graphql.mappers#TokenInfoMapper', Activity: '../modules/activity/module.graphql.mappers#ActivityMapper', AlertChannel: '../modules/alerts/module.graphql.mappers#AlertChannelMapper', AlertSlackChannel: '../modules/alerts/module.graphql.mappers#AlertSlackChannelMapper', AlertWebhookChannel: '../modules/alerts/module.graphql.mappers#AlertWebhookChannelMapper', Alert: '../modules/alerts/module.graphql.mappers#AlertMapper', AdminQuery: '../modules/admin/module.graphql.mappers#AdminQueryMapper', AdminStats: '../modules/admin/module.graphql.mappers#AdminStatsMapper', AdminGeneralStats: '../modules/admin/module.graphql.mappers#AdminGeneralStatsMapper', AdminOrganizationStats: '../modules/admin/module.graphql.mappers#AdminOrganizationStatsMapper', BillingPaymentMethod: '../modules/billing/module.graphql.mappers#BillingPaymentMethodMapper', BillingDetails: '../modules/billing/module.graphql.mappers#BillingDetailsMapper', BillingInvoice: '../modules/billing/module.graphql.mappers#BillingInvoiceMapper', OrganizationGetStarted: '../modules/organization/module.graphql.mappers#OrganizationGetStartedMapper', SchemaExplorer: '../modules/schema/module.graphql.mappers#SchemaExplorerMapper', UnusedSchemaExplorer: '../modules/schema/module.graphql.mappers#UnusedSchemaExplorerMapper', DeprecatedSchemaExplorer: '../modules/schema/module.graphql.mappers#DeprecatedSchemaExplorerMapper', GraphQLObjectType: '../modules/schema/module.graphql.mappers#GraphQLObjectTypeMapper', GraphQLInterfaceType: '../modules/schema/module.graphql.mappers#GraphQLInterfaceTypeMapper', GraphQLUnionType: '../modules/schema/module.graphql.mappers#GraphQLUnionTypeMapper', GraphQLEnumType: '../modules/schema/module.graphql.mappers#GraphQLEnumTypeMapper', GraphQLInputObjectType: '../modules/schema/module.graphql.mappers#GraphQLInputObjectTypeMapper', GraphQLScalarType: '../modules/schema/module.graphql.mappers#GraphQLScalarTypeMapper', GraphQLUnionTypeMember: '../modules/schema/module.graphql.mappers#GraphQLUnionTypeMemberMapper', GraphQLEnumValue: '../modules/schema/module.graphql.mappers#GraphQLEnumValueMapper', GraphQLField: '../modules/schema/module.graphql.mappers#GraphQLFieldMapper', GraphQLInputField: '../modules/schema/module.graphql.mappers#GraphQLInputFieldMapper', GraphQLArgument: '../modules/schema/module.graphql.mappers#GraphQLArgumentMapper', OrganizationInvitation: '../modules/organization/module.graphql.mappers#OrganizationInvitationMapper', OIDCIntegration: '../modules/oidc-integrations/module.graphql.mappers#OIDCIntegrationMapper', User: '../modules/auth/module.graphql.mappers#UserMapper', SchemaPolicy: '../modules/policy/module.graphql.mappers#SchemaPolicyMapper', SchemaPolicyRule: '../modules/policy/module.graphql.mappers#SchemaPolicyRuleMapper', SchemaCoordinateUsage: '../modules/schema/module.graphql.mappers#SchemaCoordinateUsageMapper', DocumentCollection: '../modules/collection/module.graphql.mappers#DocumentCollectionMapper', DocumentCollectionOperation: '../modules/collection/module.graphql.mappers#DocumentCollectionOperationMapper', DocumentCollectionConnection: '../modules/collection/module.graphql.mappers#DocumentCollectionConnectionMapper', DocumentCollectionOperationsConnection: '../modules/collection/module.graphql.mappers#DocumentCollectionOperationsConnectionMapper', FailedSchemaCheck: '../modules/schema/module.graphql.mappers#FailedSchemaCheckMapper', SuccessfulSchemaCheck: '../modules/schema/module.graphql.mappers#SuccessfulSchemaCheckMapper', SchemaPolicyWarningConnection: '../modules/schema/module.graphql.mappers#SchemaPolicyWarningConnectionMapper', Contract: '../modules/schema/module.graphql.mappers#ContractMapper', ContractConnection: '../modules/schema/module.graphql.mappers#ContractConnectionMapper', ContractCheck: '../modules/schema/module.graphql.mappers#ContractCheckMapper', ContractVersion: '../modules/schema/module.graphql.mappers#ContractVersionMapper', BreakingChangeMetadataTarget: '../modules/schema/module.graphql.mappers#BreakingChangeMetadataTargetMapper', }, }, }, './packages/web/app/src/gql/': { documents: [ './packages/web/app/src/(components|lib|pages)/**/*.ts(x)?', './packages/web/app/src/graphql', '!./packages/web/app/src/server/**/*.ts', ], preset: 'client', config: { scalars: { DateTime: 'string', Date: 'string', SafeInt: 'number', JSONSchemaObject: 'json-schema-typed#JSONSchema', }, }, presetConfig: { persistedDocuments: true, }, plugins: [], documentTransforms: [addTypenameSelectionDocumentTransform], }, './packages/web/app/src/gql/schema.ts': { plugins: ['urql-introspection'], config: { useTypeImports: true, module: 'es2015', }, }, // CLI './packages/libraries/cli/src/gql/': { documents: ['./packages/libraries/cli/src/(commands|helpers)/**/*.ts'], preset: 'client', plugins: [], config: { useTypeImports: true, }, }, // Client 'packages/libraries/core/src/client/__generated__/types.ts': { documents: ['./packages/libraries/core/src/client/**/*.ts'], config: { flattenGeneratedTypes: true, onlyOperationTypes: true, }, plugins: ['typescript', 'typescript-operations'], }, // Integration tests './integration-tests/testkit/gql/': { documents: ['./integration-tests/(testkit|tests)/**/*.ts'], preset: 'client', plugins: [], config: { scalars: { DateTime: 'string', Date: 'string', SafeInt: 'number', }, }, }, './schema.graphql': { plugins: ['schema-ast'], config: { includeDirectives: true, }, }, }, }; module.exports = config;