console/codegen.mts

217 lines
10 KiB
TypeScript
Raw Normal View History

import { type CodegenConfig } from '@graphql-codegen/cli';
import { addTypenameSelectionDocumentTransform } from '@graphql-codegen/client-preset';
2023-02-21 12:24:41 +00:00
const config: CodegenConfig = {
2023-02-21 12:24:41 +00:00
schema: './packages/services/api/src/modules/*/module.graphql.ts',
emitLegacyCommonJSImports: true,
generates: {
// API
'./packages/services/api/src/modules': {
preset: 'graphql-modules',
plugins: [
{
add: {
content: "import type { StripeTypes } from '@hive/stripe-billing';",
2023-02-21 12:24:41 +00:00
},
},
'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',
2023-02-21 12:24:41 +00:00
TargetAccessScope: '../modules/auth/providers/target-access#TargetAccessScope',
ProjectAccessScope: '../modules/auth/providers/project-access#ProjectAccessScope',
OrganizationAccessScope:
'../modules/auth/providers/organization-access#OrganizationAccessScope',
2023-09-06 11:35:08 +00:00
SupportTicketPriority: '../shared/entities#SupportTicketPriority',
SupportTicketStatus: '../shared/entities#SupportTicketStatus',
2023-02-21 12:24:41 +00:00
},
scalars: {
DateTime: 'string',
SafeInt: 'number',
2023-06-20 12:01:46 +00:00
ID: 'string',
2023-02-21 12:24:41 +00:00
},
mappers: {
SchemaChange: '../shared/mappers#SchemaChange as SchemaChangeMapper',
SchemaChangeApproval:
'../shared/mappers#SchemaChangeApproval as SchemaChangeApprovalMapper',
2023-02-21 12:24:41 +00:00
SchemaChangeConnection:
'../shared/mappers#SchemaChangeConnection as SchemaChangeConnectionMapper',
SchemaErrorConnection:
'../shared/mappers#SchemaErrorConnection as SchemaErrorConnectionMapper',
SchemaWarningConnection:
'../shared/mappers#SchemaWarningConnection as SchemaWarningConnectionMapper',
2023-02-21 12:24:41 +00:00
OrganizationConnection:
'../shared/mappers#OrganizationConnection as OrganizationConnectionMapper',
UserConnection: '../shared/mappers#UserConnection as UserConnectionMapper',
ActivityConnection: '../shared/mappers#ActivityConnection as ActivityConnectionMapper',
MemberConnection: '../shared/mappers#MemberConnection as MemberConnectionMapper',
ProjectConnection: '../shared/mappers#ProjectConnection as ProjectConnectionMapper',
TargetConnection: '../shared/mappers#TargetConnection as TargetConnectionMapper',
SchemaConnection: '../shared/mappers#SchemaConnection as SchemaConnectionMapper',
TokenConnection: '../shared/mappers#TokenConnection as TokenConnectionMapper',
OperationStatsValuesConnection:
'../shared/mappers#OperationStatsValuesConnection as OperationStatsValuesConnectionMapper',
ClientStatsValuesConnection:
'../shared/mappers#ClientStatsValuesConnection as ClientStatsValuesConnectionMapper',
SchemaCoordinateStats:
'../shared/mappers#SchemaCoordinateStats as SchemaCoordinateStatsMapper',
ClientStats: '../shared/mappers#ClientStats as ClientStatsMapper',
2023-02-21 12:24:41 +00:00
OperationsStats: '../shared/mappers#OperationsStats as OperationsStatsMapper',
DurationValues: '../shared/mappers#DurationValues as DurationValuesMapper',
2023-02-21 12:24:41 +00:00
SchemaComparePayload:
'../shared/mappers#SchemaComparePayload as SchemaComparePayloadMapper',
SchemaCompareResult: '../shared/mappers#SchemaCompareResult as SchemaCompareResultMapper',
SchemaCompareError: '../shared/mappers#SchemaCompareError as SchemaCompareErrorMapper',
2023-02-21 12:24:41 +00:00
SchemaVersionConnection:
'../modules/shared/providers/storage#PaginatedSchemaVersionConnection as SchemaVersionConnectionMapper',
2023-02-21 12:24:41 +00:00
SchemaVersion: '../shared/mappers#SchemaVersion as SchemaVersionMapper',
Schema: '../shared/mappers#Schema as SchemaMapper',
SingleSchema: '../shared/mappers#SingleSchema as SingleSchemaMapper',
CompositeSchema: '../shared/mappers#PushedCompositeSchema as PushedCompositeSchemaMapper',
Organization: '../shared/entities#Organization as OrganizationMapper',
Project: '../shared/entities#Project as ProjectMapper',
Target: '../shared/entities#Target as TargetMapper',
Member: '../shared/entities#Member as MemberMapper',
2023-12-05 10:54:03 +00:00
MemberRole: '../shared/mappers#MemberRoleMapper as MemberRoleMapper',
2023-02-21 12:24:41 +00:00
Token: '../shared/entities#Token as TokenMapper',
TokenInfo: '../shared/entities#Token as TokenInfoMapper',
Activity: '../shared/entities#ActivityObject as ActivityMapper',
AlertChannel: '../shared/entities#AlertChannel as AlertChannelMapper',
AlertSlackChannel: 'AlertChannelMapper',
AlertWebhookChannel: 'AlertChannelMapper',
Alert: '../shared/entities#Alert as AlertMapper',
AdminQuery: '{}',
AdminStats: '../shared/mappers#AdminStats as AdminStatsMapper',
AdminGeneralStats: '../shared/mappers#AdminStats as AdminGeneralStatsMapper',
AdminOrganizationStats:
'../shared/entities#AdminOrganizationStats as AdminOrganizationStatsMapper',
UsageEstimation: '../shared/mappers#TargetsEstimationFilter',
UsageEstimationScope: '../shared/mappers#TargetsEstimationDateFilter',
BillingPaymentMethod: 'StripeTypes.PaymentMethod.Card',
BillingDetails: 'StripeTypes.PaymentMethod.BillingDetails',
BillingInvoice: 'StripeTypes.Invoice | StripeTypes.UpcomingInvoice',
OrganizationGetStarted:
'../shared/entities#OrganizationGetStarted as OrganizationGetStartedMapper',
SchemaExplorer: '../shared/mappers#SchemaExplorerMapper',
2023-10-09 13:38:19 +00:00
UnusedSchemaExplorer: '../shared/mappers#UnusedSchemaExplorerMapper',
2023-02-21 12:24:41 +00:00
GraphQLObjectType: '../shared/mappers#GraphQLObjectTypeMapper',
GraphQLInterfaceType: '../shared/mappers#GraphQLInterfaceTypeMapper',
GraphQLUnionType: '../shared/mappers#GraphQLUnionTypeMapper',
GraphQLEnumType: '../shared/mappers#GraphQLEnumTypeMapper',
GraphQLInputObjectType: '../shared/mappers#GraphQLInputObjectTypeMapper',
GraphQLScalarType: '../shared/mappers#GraphQLScalarTypeMapper',
GraphQLUnionTypeMember: '../shared/mappers#GraphQLUnionTypeMemberMapper',
GraphQLEnumValue: '../shared/mappers#GraphQLEnumValueMapper',
GraphQLField: '../shared/mappers#GraphQLFieldMapper',
GraphQLInputField: '../shared/mappers#GraphQLInputFieldMapper',
GraphQLArgument: '../shared/mappers#GraphQLArgumentMapper',
OrganizationInvitation:
'../shared/entities#OrganizationInvitation as OrganizationInvitationMapper',
OIDCIntegration: '../shared/entities#OIDCIntegration as OIDCIntegrationMapper',
User: '../shared/entities#User as UserMapper',
SchemaPolicy: '../shared/entities#SchemaPolicy as SchemaPolicyMapper',
SchemaPolicyRule: '../shared/entities#SchemaPolicyAvailableRuleObject',
SchemaCoordinateUsage: '../shared/mappers#SchemaCoordinateUsageTypeMapper',
DocumentCollection: '../shared/entities#DocumentCollection as DocumentCollectionEntity',
DocumentCollectionOperation:
'../shared/entities#DocumentCollectionOperation as DocumentCollectionOperationEntity',
DocumentCollectionConnection: '../shared/entities#PaginatedDocumentCollections',
DocumentCollectionOperationsConnection:
'../shared/entities#PaginatedDocumentCollectionOperations',
FailedSchemaCheck: '../shared/mappers#FailedSchemaCheckMapper',
SuccessfulSchemaCheck: '../shared/mappers#SuccessfulSchemaCheckMapper',
SchemaPolicyWarningConnection: '../shared/mappers#SchemaPolicyWarningConnectionMapper',
Contract: '../shared/mappers#Contract as ContractMapper',
ContractConnection: '../modules/schema/providers/contracts#PaginatedContractConnection',
ContractCheck:
'../modules/schema/providers/contracts#ContractCheck as ContractCheckMapper',
ContractVersion:
'../modules/schema/providers/contracts#ContractVersion as ContractVersionMapper',
2023-02-21 12:24:41 +00:00
},
},
},
// App
'./packages/web/app/src/graphql/index.ts': {
documents: [
'./packages/web/app/src/graphql/*.graphql',
'./packages/web/app/src/(components|lib)/**/*.ts(x)?',
],
plugins: ['typescript', 'typescript-operations', 'typed-document-node'],
config: {
dedupeFragments: true,
scalars: {
DateTime: 'string',
SafeInt: 'number',
JSONSchemaObject: 'json-schema-typed#JSONSchema',
2023-02-21 12:24:41 +00:00
},
},
},
'./packages/web/app/src/gql/': {
documents: [
'./packages/web/app/src/(components|lib)/**/*.ts(x)?',
'./packages/web/app/pages/v2/**/*.ts(x)?',
'./packages/web/app/pages/**/*.ts(x)?',
'./packages/web/app/src/graphql',
'!./packages/web/app/pages/api/github/setup-callback.ts',
],
preset: 'client',
config: {
scalars: {
DateTime: 'string',
SafeInt: 'number',
JSONSchemaObject: 'json-schema-typed#JSONSchema',
},
},
presetConfig: {
persistedDocuments: true,
},
2023-02-21 12:24:41 +00:00
plugins: [],
documentTransforms: [addTypenameSelectionDocumentTransform],
2023-02-21 12:24:41 +00:00
},
'./packages/web/app/src/gql/schema.ts': {
plugins: ['urql-introspection'],
config: {
useTypeImports: true,
module: 'es2015',
},
},
2023-02-21 12:24:41 +00:00
// CLI
2023-07-04 15:19:45 +00:00
'./packages/libraries/cli/src/gql/': {
documents: ['./packages/libraries/cli/src/commands/**/*.ts'],
preset: 'client',
plugins: [],
2023-02-21 12:24:41 +00:00
config: {
2023-07-04 15:19:45 +00:00
useTypeImports: true,
2023-02-21 12:24:41 +00:00
},
},
// Client
'packages/libraries/client/src/__generated__/types.ts': {
documents: ['./packages/libraries/client/src/**/*.ts'],
config: {
flattenGeneratedTypes: true,
onlyOperationTypes: true,
},
plugins: ['typescript', 'typescript-operations'],
},
// Integration tests
'./integration-tests/testkit/gql/': {
documents: ['./integration-tests/(testkit|tests)/**/*.ts'],
preset: 'client',
2023-02-21 12:24:41 +00:00
plugins: [],
},
},
};
module.exports = config;