dotansimha / dotansimha/graphql-code-generator

[Feature] support some sort of root path, for multi package builds

Open
#4,959 0 comments 0 reactions 0 assignees View on GitHub
core kind/enhancement
Dominant language
TypeScript
Stars
11.3k
Forks
1.4k
Avg merge
1d 1h
Merged PRs (30d)
23

Description

related to #4948 . my code is going to get very duplicitous do to a multi-workspace config.

instead of

```yml
ts-plugins: &ts-plugins
- typescript
- typescript-resolvers
- typescript-operations
- typescript-document-nodes

overwrite: true
require:
- ts-node/register
config:
useTypeImports: true
scalars:
DateTime: "@js-joda/core#ZonedDateTime"
Date: "@js-joda/core#LocalDate"
generates:
packages/apollo/src/generated/schema.ts:
schema:
- packages/apollo/src/**/*.schema.graphql
- packages/apollo/src/**/*.test-schema.graphql
documents: packages/apollo/src/**/*.test.graphql
plugins: *ts-plugins
packages/main/src/generated/schema.ts:
schema: packages/*/src/**/*.schema.graphql
documents: packages/main/src/**/*.test.graphql
plugins: *ts-plugins
config:
noSchemaStitching: true
contextType: packages/apollo#Context
defaultMapper: Partial<{T}>
mappers:
```

I'd rather write

```yml
generation:
generates: &ts-generates
generated/schema.ts:
schema:
- src/**/*.schema.graphql
- src/**/*.test-schema.graphql
documents: src/**/*.test.graphql
plugins:
- typescript
- typescript-resolvers
- typescript-operations
- typescript-document-nodes

overwrite: true
require:
- ts-node/register
config:
useTypeImports: true
scalars:
DateTime: "@js-joda/core#ZonedDateTime"
Date: "@js-joda/core#LocalDate":
packages: # arbitrary key name, choose whatever, but lerna and yarn recommend packages for the directory, so maybe a good keyname
packages/apollo:
generates: *ts-generates
packages/main:
generates:
<<: *ts-generates
generated/schema.ts:
config:
noSchemaStitching: true
contextType: packages/apollo#Context
defaultMapper: Partial<{T}>
mappers:
```

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.