fix: shared type excluded from non-first project caches
This propagates the project when populating the cache.
For a config like this:
projects:
public:
schema:
- ./public/schema.graphql
- ./shared.graphql
documents: ./public/documents.graphql
private:
schema:
- ./private/schema.graphql
- ./shared.graphql
documents: ./private/documents.graphql
If shared.graphql contains a type used in both ./public/documents.graphql and ./private/documents.graphql, the cache will only be populated for the first project (public here). This causes features like "go to definition" to only work for that project.
Propagating the project adds the shared types to the cache for both projects, and makes "go to definition" work for both.
Example Project
$ tree -a
.
├── .graphqlrc.yml
├── private
│ ├── documents.graphql
│ └── schema.graphql
├── public
│ ├── documents.graphql
│ └── schema.graphql
└── shared.graphql
3 directories, 6 files
# shared.graphql
type Book {
title: String
}
# private/documents.graphql
query ListBooks {
books {
title # << go to definition on this fails on master
}
}
# private/schema.graphql
type Query {
books: [Book]
}
schema {
query: Query
}
# public/documents.graphql
query ListPublicBooks {
publicBooks {
title
}
}
# public/schema.graphql
type Query {
publicBooks: [Book]
}
schema {
query: Query
}
⚠️ No Changeset found
Latest commit: 281a48915476b06f33e6722b5893c4fd0b79abef
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR