use cjs config (#1433)

This commit is contained in:
Laurin Quast 2023-02-21 13:24:41 +01:00 committed by GitHub
parent a655db5b17
commit f13e70d87e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 172 additions and 151 deletions

171
codegen.cjs Normal file
View file

@ -0,0 +1,171 @@
// @ts-check
/** @type {import('@graphql-codegen/cli').CodegenConfig} */
const config = {
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 { StripeTypes } from '@hive/stripe-billing';",
},
},
'typescript',
'typescript-resolvers',
],
presetConfig: {
baseTypesPath: '../__generated__/types.ts',
filename: '__generated__/types.ts',
encapsulateModuleTypes: 'namespace',
},
config: {
immutableTypes: true,
contextType: 'GraphQLModules.ModuleContext',
enumValues: {
OrganizationType: '../shared/entities#OrganizationType',
ProjectType: '../shared/entities#ProjectType',
TargetAccessScope: '../modules/auth/providers/target-access#TargetAccessScope',
ProjectAccessScope: '../modules/auth/providers/project-access#ProjectAccessScope',
OrganizationAccessScope:
'../modules/auth/providers/organization-access#OrganizationAccessScope',
},
scalars: {
DateTime: 'string',
SafeInt: 'number',
},
mappers: {
SchemaChangeConnection:
'../shared/mappers#SchemaChangeConnection as SchemaChangeConnectionMapper',
SchemaErrorConnection:
'../shared/mappers#SchemaErrorConnection as SchemaErrorConnectionMapper',
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',
OperationStatsConnection:
'../shared/mappers#OperationStatsConnection as OperationStatsConnectionMapper',
ClientStatsConnection:
'../shared/mappers#ClientStatsConnection as ClientStatsConnectionMapper',
OperationsStats: '../shared/mappers#OperationsStats as OperationsStatsMapper',
DurationStats: '../shared/mappers#DurationStats as DurationStatsMapper',
SchemaComparePayload:
'../shared/mappers#SchemaComparePayload as SchemaComparePayloadMapper',
SchemaCompareResult: '../shared/mappers#SchemaCompareResult as SchemaCompareResultMapper',
SchemaVersionConnection:
'../shared/mappers#SchemaVersionConnection as SchemaVersionConnectionMapper',
SchemaVersion: '../shared/mappers#SchemaVersion as SchemaVersionMapper',
Schema: '../shared/mappers#Schema as SchemaMapper',
SingleSchema: '../shared/mappers#SingleSchema as SingleSchemaMapper',
CompositeSchema: '../shared/mappers#PushedCompositeSchema as PushedCompositeSchemaMapper',
PersistedOperationConnection:
'../shared/mappers#PersistedOperationConnection as PersistedOperationMapper',
Organization: '../shared/entities#Organization as OrganizationMapper',
Project: '../shared/entities#Project as ProjectMapper',
Target: '../shared/entities#Target as TargetMapper',
Member: '../shared/entities#Member as MemberMapper',
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',
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',
},
},
},
// 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',
},
},
},
'./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: 'gql-tag-operations-preset',
plugins: [],
config: {
dedupeFragments: true,
},
presetConfig: {
augmentedModuleName: '@urql/core',
},
},
// CLI
'packages/libraries/cli/src/sdk.ts': {
documents: './packages/libraries/cli/src/**/*.graphql',
config: {
flattenGeneratedTypes: true,
},
plugins: ['typescript', 'typescript-operations', 'typescript-graphql-request'],
},
// 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-preset',
plugins: [],
},
},
};
module.exports = config;

View file

@ -1,150 +0,0 @@
schema: ./packages/services/api/src/modules/*/module.graphql.ts
emitLegacyCommonJSImports: true
generates:
# API
./packages/services/api/src/modules:
preset: graphql-modules
presetConfig:
baseTypesPath: ../__generated__/types.ts
filename: __generated__/types.ts
encapsulateModuleTypes: namespace
config:
immutableTypes: true
contextType: GraphQLModules.ModuleContext
enumValues:
OrganizationType: ../shared/entities#OrganizationType
ProjectType: ../shared/entities#ProjectType
TargetAccessScope: ../modules/auth/providers/target-access#TargetAccessScope
ProjectAccessScope: ../modules/auth/providers/project-access#ProjectAccessScope
OrganizationAccessScope: ../modules/auth/providers/organization-access#OrganizationAccessScope
scalars:
DateTime: string
SafeInt: number
mappers:
SchemaChangeConnection:
../shared/mappers#SchemaChangeConnection as SchemaChangeConnectionMapper
SchemaErrorConnection:
../shared/mappers#SchemaErrorConnection as SchemaErrorConnectionMapper
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
OperationStatsConnection:
../shared/mappers#OperationStatsConnection as OperationStatsConnectionMapper
ClientStatsConnection:
../shared/mappers#ClientStatsConnection as ClientStatsConnectionMapper
OperationsStats: ../shared/mappers#OperationsStats as OperationsStatsMapper
DurationStats: ../shared/mappers#DurationStats as DurationStatsMapper
SchemaComparePayload: ../shared/mappers#SchemaComparePayload as SchemaComparePayloadMapper
SchemaCompareResult: ../shared/mappers#SchemaCompareResult as SchemaCompareResultMapper
SchemaVersionConnection:
../shared/mappers#SchemaVersionConnection as SchemaVersionConnectionMapper
SchemaVersion: ../shared/mappers#SchemaVersion as SchemaVersionMapper
Schema: ../shared/mappers#Schema as SchemaMapper
SingleSchema: ../shared/mappers#SingleSchema as SingleSchemaMapper
CompositeSchema: ../shared/mappers#PushedCompositeSchema as PushedCompositeSchemaMapper
PersistedOperationConnection:
../shared/mappers#PersistedOperationConnection as PersistedOperationMapper
Organization: ../shared/entities#Organization as OrganizationMapper
Project: ../shared/entities#Project as ProjectMapper
Target: ../shared/entities#Target as TargetMapper
Member: ../shared/entities#Member as MemberMapper
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
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'
plugins:
- add:
content: "import { StripeTypes } from '@hive/stripe-billing';"
- typescript
- typescript-resolvers
# App
./packages/web/app/src/graphql/index.ts:
documents:
- ./packages/web/app/src/graphql/*.graphql
- './packages/web/app/src/(components|lib)/**/*.ts(x)?'
config:
dedupeFragments: true
scalars:
DateTime: string
SafeInt: number
plugins:
- typescript
- typescript-operations
- typed-document-node
./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: gql-tag-operations-preset
config:
dedupeFragments: true
presetConfig:
augmentedModuleName: '@urql/core'
# CLI
packages/libraries/cli/src/sdk.ts:
documents: ./packages/libraries/cli/src/**/*.graphql
config:
flattenGeneratedTypes: true
plugins:
- typescript
- typescript-operations
- typescript-graphql-request
# 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-preset

View file

@ -27,7 +27,7 @@
"docker:build": "docker buildx bake -f docker/docker.hcl --load build",
"env:sync": "node ./scripts/sync-env-files.js",
"generate": "pnpm --filter @hive/storage db:generate && pnpm graphql:generate",
"graphql:generate": "graphql-codegen",
"graphql:generate": "graphql-codegen --config codegen.cjs",
"lint": "eslint --cache --ignore-path .gitignore \"{packages,cypress}/**/*.{ts,tsx}\"",
"lint:env-template": "tsx scripts/check-env-template.ts",
"lint:fix": "pnpm lint --fix",