dotansimha / dotansimha/graphql-code-generator

graphql-modules-preset: Accept `enumsAsConst` for typescript plugin config

Open
#9,072 0 comments 2 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
11.3k
Forks
1.4k
Avg merge
1d 1h
Merged PRs (30d)
23

Description

### Is your feature request related to a problem? Please describe.

`enumsAsConst` is ignored:

```typescript
import type { CodegenConfig } from '@graphql-codegen/cli'

const config: CodegenConfig = {
schema: './src/modules/**/typedefs/*.graphql',
generates: {
'./src/modules/': {
preset: 'graphql-modules',
presetConfig: {
baseTypesPath: '../generated-types/graphql.ts',
filename: 'generated-types/module-types.ts',
},
plugins: [
{
typescript: {
enumsAsConst: true, // ❌ Does not work
},
},
{
'typescript-resolvers': {}
},
],
},
},
}

export default config
```

because graphql-modules-preset overwrites typescript plugin config as `enumsAsTypes: true`, so `enumsAsConst: true` is ignored.

```typescript
config: {
...options.config,
enumsAsTypes: true, // 🙁
},
```
https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/graphql-modules/src/index.ts#L69

### Describe the solution you'd like

Accept a config something like this in `ModulesConfig`:

```typescript
export type ModulesConfig = {
...
disableOverwritesEnumsAsConfig: boolean;
...
};
```
https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/graphql-modules/src/config.ts

```typescript
import type { CodegenConfig } from '@graphql-codegen/cli'

const config: CodegenConfig = {
schema: './src/modules/**/typedefs/*.graphql',
generates: {
'./src/modules/': {
preset: 'graphql-modules',
presetConfig: {
baseTypesPath: '../generated-types/graphql.ts',
filename: 'generated-types/module-types.ts',
disableOverwritesEnumsAsConfig: true, // ✅ Add
},
plugins: [
{
typescript: {
enumsAsConst: true, // ✅ Works!
},
},
{
'typescript-resolvers': {}
},
],
},
},
}

export default config
```

### Describe alternatives you've considered

_No response_

### Is your feature request related to a problem? Please describe.

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.