dotansimha/graphql-code-generator

source option

Open

#6.363 geöffnet am 25. Juli 2021

Auf GitHub ansehen
 (1 Kommentar) (0 Reaktionen) (0 zugewiesene Personen)TypeScript (1.295 Forks)batch import
corehelp wantedkind/enhancement

Repository-Metriken

Stars
 (10.341 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 22T 9h) (53 gemergte PRs in 30 T)

Beschreibung

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

When testing it's useful to get an operation's source

import { NoParamQuery } from '../codegen/schema';

describe('with NoParamQuery script child', function() {
  let element;
  beforeEach(async function() {
    element = await getElement();
    element.innerHTML = `<script type="application/graphql">${NoParamQuery.loc!.source.body}</script>`;
    await nextFrame();
  });

  it('sets query property', function() {
    expect(element?.query).to.deep.equal(gql(NoParamQuery.loc!.source.body));
  });
});

Describe the solution you'd like .graphqlrc.yml

extensions:
  codegen:
    config:
      dedupeOperationSuffix: true
      namingConvention: keep
      documentVariableSuffix: ''
      source: true

    generates:
      test/schema.ts:
        schema: test/graphql/test.schema.graphql
        plugins:
          - typescript
          - typescript-operations
          - typed-document-node

        documents:
          - test/graphql/*.query.graphql
          - test/graphql/*.mutation.graphql
          - test/graphql/*.subscription.graphql
          - test/graphql/*.fragment.graphql

Describe alternatives you've considered build-time transformers like rollup-plugin-graphql etc.

Additional context source could be boolean|string[] to provide users with an allowlist of operations to include sources for, if they need source at runtime for some reason but want to lower bundle sizes.

source:
  - NoParamQuery
  - SourcyMutation

Contributor Guide