-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move Disabled plugins up a level and change some context typing
Two things got a bit mixed together here. One is that we want the Disabled plugins to all be defined directly in plugin/index.ts, so that loading ApolloServerPluginInlineTraceDisabled does not spend time loading the protobuf library. The other thing is that we started thinking a bit more carefully about plugin context generics. We wrote some tests to make sure that you can use an `ApolloServerPlugin<BaseContext>` (ie, a plugin that doesn't need any particular fields on the context) with any `ApolloServer`, but not vice versa. As part of getting this to work, we added another `__forceTContextToBeContravariant`. We also noticed that it made more sense for BaseContext to be `{}` ("an object with no particular fields") rather than `Record<string, any>` ("an object where you can do anything with any of its fields"). We investigated whether the new contravariance annotation coming in the next two months in TS 4.7 (microsoft/TypeScript#48240) would allow us to get rid of the `__forceTContextToBeContravariant` hack and the answer is yes! However, trying `4.7.0-beta` failed for two other reasons. One is that microsoft/TypeScript#48366 required us to add some missing `extends` clauses, which we are doing now in this PR. The other is that `graphql-tools` needs some fixes to work with TS4.7 which we hope they can do soon (ardatan/graphql-tools#4381).
- Loading branch information
Showing
11 changed files
with
153 additions
and
131 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.