|
18 | 18 | import com.intellij.lang.jsgraphql.ide.project.graphqlconfig.GraphQLConfigManager; |
19 | 19 | import com.intellij.lang.jsgraphql.ide.project.graphqlconfig.model.GraphQLConfigEndpoint; |
20 | 20 | import com.intellij.lang.jsgraphql.ide.project.graphqlconfig.model.GraphQLConfigVariableAwareEndpoint; |
| 21 | +import com.intellij.lang.jsgraphql.schema.GraphQLRegistryInfo; |
| 22 | +import com.intellij.lang.jsgraphql.schema.GraphQLSchemaInfo; |
21 | 23 | import com.intellij.lang.jsgraphql.schema.GraphQLSchemaKeys; |
| 24 | +import com.intellij.lang.jsgraphql.types.GraphQLError; |
| 25 | +import com.intellij.lang.jsgraphql.types.introspection.IntrospectionQuery; |
| 26 | +import com.intellij.lang.jsgraphql.types.language.Description; |
| 27 | +import com.intellij.lang.jsgraphql.types.language.Document; |
| 28 | +import com.intellij.lang.jsgraphql.types.language.Node; |
| 29 | +import com.intellij.lang.jsgraphql.types.language.ScalarTypeDefinition; |
| 30 | +import com.intellij.lang.jsgraphql.types.schema.idl.SchemaParser; |
| 31 | +import com.intellij.lang.jsgraphql.types.schema.idl.SchemaPrinter; |
| 32 | +import com.intellij.lang.jsgraphql.types.schema.idl.UnExecutableSchemaGenerator; |
| 33 | +import com.intellij.lang.jsgraphql.types.util.EscapeUtil; |
22 | 34 | import com.intellij.lang.jsgraphql.v1.ide.project.JSGraphQLLanguageUIProjectService; |
23 | 35 | import com.intellij.notification.Notification; |
24 | 36 | import com.intellij.notification.NotificationAction; |
|
55 | 67 | import com.intellij.util.Consumer; |
56 | 68 | import com.intellij.util.ExceptionUtil; |
57 | 69 | import com.intellij.util.ObjectUtils; |
58 | | -import com.intellij.lang.jsgraphql.types.introspection.IntrospectionQuery; |
59 | | -import com.intellij.lang.jsgraphql.types.language.*; |
60 | | -import com.intellij.lang.jsgraphql.types.schema.idl.*; |
61 | | -import com.intellij.lang.jsgraphql.types.util.EscapeUtil; |
62 | 70 | import org.apache.commons.lang.StringEscapeUtils; |
63 | 71 | import org.apache.commons.lang.StringUtils; |
64 | 72 | import org.apache.http.client.methods.CloseableHttpResponse; |
|
81 | 89 | import java.security.KeyManagementException; |
82 | 90 | import java.security.KeyStoreException; |
83 | 91 | import java.security.NoSuchAlgorithmException; |
84 | | -import java.util.Collection; |
85 | | -import java.util.List; |
86 | | -import java.util.Map; |
87 | | -import java.util.Set; |
| 92 | +import java.util.*; |
88 | 93 |
|
89 | 94 | import static com.intellij.lang.jsgraphql.v1.ide.project.JSGraphQLLanguageUIProjectService.setHeadersFromOptions; |
90 | 95 |
|
@@ -252,9 +257,22 @@ public String printIntrospectionAsGraphQL(@NotNull Map<String, Object> introspec |
252 | 257 | .includeScalarTypes(false) |
253 | 258 | .includeSchemaDefinition(true) |
254 | 259 | .includeDirectives(directive -> !DEFAULT_DIRECTIVES.contains(directive.getName())); |
255 | | - final TypeDefinitionRegistry registry = new SchemaParser().buildRegistry(schemaDefinition); |
256 | 260 |
|
257 | | - final StringBuilder sb = new StringBuilder(new SchemaPrinter(options).print(UnExecutableSchemaGenerator.makeUnExecutableSchema(registry))); |
| 261 | + GraphQLRegistryInfo registryInfo = new GraphQLRegistryInfo( |
| 262 | + new SchemaParser().buildRegistry(schemaDefinition), Collections.emptyList(), true); |
| 263 | + GraphQLSchemaInfo schemaInfo = new GraphQLSchemaInfo( |
| 264 | + UnExecutableSchemaGenerator.makeUnExecutableSchema(registryInfo.getTypeDefinitionRegistry()), |
| 265 | + Collections.emptyList(), |
| 266 | + registryInfo |
| 267 | + ); |
| 268 | + |
| 269 | + if (schemaInfo.hasErrors()) { |
| 270 | + for (GraphQLError error : schemaInfo.getErrors()) { |
| 271 | + LOG.warn(error.getMessage()); |
| 272 | + } |
| 273 | + } |
| 274 | + |
| 275 | + final StringBuilder sb = new StringBuilder(new SchemaPrinter(options).print(schemaInfo.getSchema())); |
258 | 276 |
|
259 | 277 | // graphql-java only prints scalars that are used by fields since it visits fields to discover types, so add the scalars here manually |
260 | 278 | final Set<String> knownScalars = Sets.newHashSet(); |
|
0 commit comments