apollographql / apollo-tooling

✏️ Apollo CLI for client tooling (Mostly replaced by Rover)
https://apollographql.com
MIT License
3.04k stars 467 forks source link

2.34.0: Cannot find module 'graphql/validation/rules/UniqueTypeNames' when generating code from a graph introspection #2665

Open jcollum-nutrien opened 1 year ago

jcollum-nutrien commented 1 year ago

This is the blog post I'm using. Something is probably outdated / missing: https://www.apollographql.com/blog/tooling/apollo-codegen/typescript-graphql-code-generator-generate-graphql-types/

Intended outcome:

I'd like to generate TS types for my graph.

Actual outcome:

 ✗ cat package.json | grep -E "graph|apo"
    "@types/graphql": "14.5.0",
    "apollo": "2.34.0"
    "graphql": "16.6.0"

✗ npx rover --output json graph introspect https://graphql.dev.nutriendata.com > schemas/hub-api-dev.json

✗ npx apollo codegen:generate --localSchemaFile=schemas/hub-api-dev.json --target=typescript --tagName=gql
    Error: Cannot find module 'graphql/validation/rules/UniqueTypeNames'
    Require stack:
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@apollo/federation/dist/composition/rules.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@apollo/federation/dist/composition/compose.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@apollo/federation/dist/composition/index.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@apollo/federation/dist/index.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/apollo-language-server/lib/providers/schema/file.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/apollo-language-server/lib/providers/schema/index.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/apollo-language-server/lib/project/base.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/apollo-language-server/lib/index.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/apollo/lib/commands/client/codegen.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@oclif/config/lib/plugin.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@oclif/config/lib/config.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@oclif/config/lib/index.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@oclif/command/lib/command.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/@oclif/command/lib/index.js
    - /Users/justin.collum2@nutrien.com/work/gql-gen/node_modules/apollo/bin/run
    Code: MODULE_NOT_FOUND

How to reproduce the issue:

Difficult to do as I don't know what part of our (large) graph is the actual issue here.

We have 2 graphs, this error occurred on both of them.

The schema file looks correct to me:

{"data":{"introspection_response":"schema {\n  query: Query\n  mutation: Mutation\n}\nscalar AWSDateTime\ [redacted...]

Versions

 ✗ cat package.json | grep -E "graph|apo"
    "@types/graphql": "14.5.0",
    "apollo": "2.34.0"
    "graphql": "16.6.0"
 ✗ npx apollo --version
apollo/2.34.0 darwin-x64 node-v14.19.2