dotansimha / dotansimha/graphql-code-generator

Possibility of passing an expression for the mappers config

Open
#5,594 3 comments 0 reactions 0 assignees View on GitHub
core help wanted kind/enhancement plugins
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.**

Not related to a problem.
I'm using Mongoose and in order it to work properly I have to map the Mongoose Document interface of my models to the generated resolvers Types. The case it that the map list is getting quite big, once I have to manually add every new Mongoose model to the map list.

**Describe the solution you'd like**
A pattern that can be set for the mappers to resolve would be very handy.
Example:
```yaml
overwrite: true
schema: "./src/typeDefs/*.graphql"
documents: null
generates:
src/lib/generated/graphql.ts:
plugins:
- "typescript"
- "typescript-resolvers"
config:
contextType: ../graphql#Context
useIndexSignature: true
mapperPattern: ../mongoose/models/{{TypeName}}Model#{{TypeName}}Document

```
The above expression would resolve for each Type of the schema and produce a result like:
(Let's assume `TypeName` as equal to `User`)
`../mongoose/models/UserModel#UserDocument`

For the expressions that could not be resolved to a real reference, the default behavior can be assumed.
The maps explicitly set on `mappers` option, overrides the pattern one.

An additional option `mapperPatternExclude` as a list of Types names, can be used to exclude some Types to be parsed by the pattern expression.

**Describe alternatives you've considered**
A plugin that implements such behavior.

**Additional context**
Imagine a project with dozens or even hundreds of Types that have to be mapped.

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.