Skip to content

Commit 8e3f021

Browse files
committed
Add logging to IntrospectionJsonToSDL
1 parent d67a172 commit 8e3f021

File tree

2 files changed

+32
-11
lines changed

2 files changed

+32
-11
lines changed

src/main/com/intellij/lang/jsgraphql/ide/editor/GraphQLIntrospectionJsonToSDLLineMarkerProvider.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.intellij.notification.NotificationType;
2121
import com.intellij.notification.Notifications;
2222
import com.intellij.openapi.editor.markup.GutterIconRenderer;
23+
import com.intellij.openapi.progress.ProcessCanceledException;
2324
import com.intellij.openapi.project.Project;
2425
import com.intellij.openapi.util.Ref;
2526
import com.intellij.openapi.vfs.VirtualFile;
@@ -70,6 +71,8 @@ public LineMarkerInfo<?> getLineMarkerInfo(@NotNull PsiElement element) {
7071
final String outputFileName = jsonFile.getName() + ".graphql";
7172

7273
graphQLIntrospectionService.createOrUpdateIntrospectionOutputFile(schemaAsSDL, GraphQLIntrospectionService.IntrospectionOutputFormat.SDL, jsonFile, outputFileName);
74+
} catch (ProcessCanceledException e) {
75+
throw e;
7376
} catch (Exception e) {
7477
Notification notification = new Notification(
7578
GraphQLNotificationUtil.NOTIFICATION_GROUP_ID,
@@ -86,7 +89,7 @@ public LineMarkerInfo<?> getLineMarkerInfo(@NotNull PsiElement element) {
8689

8790
PsiElement anchor = jsonProperty.getNameElement().getFirstChild();
8891
if (anchor == null) return null;
89-
92+
9093
return new LineMarkerInfo<>(
9194
anchor,
9295
anchor.getTextRange(),

src/main/com/intellij/lang/jsgraphql/ide/editor/GraphQLIntrospectionService.java

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,19 @@
1818
import com.intellij.lang.jsgraphql.ide.project.graphqlconfig.GraphQLConfigManager;
1919
import com.intellij.lang.jsgraphql.ide.project.graphqlconfig.model.GraphQLConfigEndpoint;
2020
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;
2123
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;
2234
import com.intellij.lang.jsgraphql.v1.ide.project.JSGraphQLLanguageUIProjectService;
2335
import com.intellij.notification.Notification;
2436
import com.intellij.notification.NotificationAction;
@@ -55,10 +67,6 @@
5567
import com.intellij.util.Consumer;
5668
import com.intellij.util.ExceptionUtil;
5769
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;
6270
import org.apache.commons.lang.StringEscapeUtils;
6371
import org.apache.commons.lang.StringUtils;
6472
import org.apache.http.client.methods.CloseableHttpResponse;
@@ -81,10 +89,7 @@
8189
import java.security.KeyManagementException;
8290
import java.security.KeyStoreException;
8391
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.*;
8893

8994
import static com.intellij.lang.jsgraphql.v1.ide.project.JSGraphQLLanguageUIProjectService.setHeadersFromOptions;
9095

@@ -252,9 +257,22 @@ public String printIntrospectionAsGraphQL(@NotNull Map<String, Object> introspec
252257
.includeScalarTypes(false)
253258
.includeSchemaDefinition(true)
254259
.includeDirectives(directive -> !DEFAULT_DIRECTIVES.contains(directive.getName()));
255-
final TypeDefinitionRegistry registry = new SchemaParser().buildRegistry(schemaDefinition);
256260

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()));
258276

259277
// graphql-java only prints scalars that are used by fields since it visits fields to discover types, so add the scalars here manually
260278
final Set<String> knownScalars = Sets.newHashSet();

0 commit comments

Comments
 (0)