graphql-code-generator icon indicating copy to clipboard operation
graphql-code-generator copied to clipboard

useFragment with array of nullable can't find type overload

Open igolka97 opened this issue 1 year ago • 1 comments

Which packages are impacted by your issue?

@graphql-codegen/client-preset

Describe the bug

When using fragment and fragment masking on a graphql field with type like [Film]! or [Film] typescript returns error about it cant find matching overload.

Your Example Website or App

https://codesandbox.io/p/devbox/gifted-brook-d5q8gx?workspaceId=ws_3UmFdMnhnojzcbNhGuKYwW

Steps to Reproduce the Bug or Issue

  1. Create graphql query like users: [User]!
  2. Create type User and it's fragment
  3. Generate with client-preset
  4. try to use useFragment with User fragment
  5. got TS error

Expected behavior

No TS error

Screenshots or Videos

Image

Platform

see repro

Codegen Config File

import { CodegenConfig } from "@graphql-codegen/cli";

const config: CodegenConfig = {
  schema: "schema.graphql",
  documents: "document.graphql",
  generates: {
    "graphql/generated/": {
      preset: "client",
      plugins: [],
    },
  },
};

export default config;

Additional context

I found out that there are no overloads for useFragment in generated fragment-masking.ts for arrays with nullable elements

igolka97 avatar Feb 04 '25 12:02 igolka97

Prepared small PR to fix this issue #10278

igolka97 avatar Feb 04 '25 13:02 igolka97