Skip to content

Commit 57c2feb

Browse files
author
Thisara Rupasinghe
committed
Update tools directive code segment
1 parent 2db3f58 commit 57c2feb

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

content/tools/directives/index.md

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,23 @@ public class UppercaseDirective implements SchemaDirectiveWiring {
3636
@Override
3737
public GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment<GraphQLFieldDefinition> env) {
3838
GraphQLFieldDefinition field = env.getElement();
39-
DataFetcher dataFetcher = DataFetcherFactories.wrapDataFetcher(field.getDataFetcher(), {
40-
dataFetchingEnvironment, value ->
41-
if (value == null) {
42-
return null
43-
}
44-
return ((String) value).toUpperCase()
45-
})
46-
return field.transform({ builder -> builder.dataFetcher(dataFetcher) });
39+
GraphQLFieldsContainer parentType = env.getFieldsContainer();
40+
41+
// build a data fetcher that transforms the given value to uppercase
42+
DataFetcher originalFetcher = env.getCodeRegistry().getDataFetcher(parentType, field);
43+
DataFetcher dataFetcher =
44+
DataFetcherFactories.wrapDataFetcher(
45+
originalFetcher,
46+
((dataFetchingEnvironment, value) -> {
47+
if (value instanceof String) {
48+
return ((String) value).toUpperCase();
49+
}
50+
return value;
51+
}));
52+
53+
// now change the field definition to use the new uppercase data fetcher
54+
env.getCodeRegistry().dataFetcher(parentType, field, dataFetcher);
55+
return field;
4756
}
4857
}
4958
```

0 commit comments

Comments
 (0)