apollographql / apollographql/apollo-tooling

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

Open
#2,665 0 comments 4 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3k
Forks
460
PR merge metrics
No merged PRs in 30d

Description

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
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure with apollo 2.34.0 and graphql 16.6.0 using the shown rover introspection and apollo codegen commands. Start by inspecting @apollo/federation/dist/composition/rules.js and the graphql dependency compatibility; done means code generation completes for the introspection schema without the MODULE_NOT_FOUND error.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, typescript
Domain
cli, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.