@@ -5,6 +5,7 @@ import com.apollographql.apollo.ast.DifferentShape
5
5
import com.apollographql.apollo.ast.DirectiveRedefinition
6
6
import com.apollographql.apollo.ast.ForeignSchema
7
7
import com.apollographql.apollo.ast.GQLDefinition
8
+ import com.apollographql.apollo.ast.GQLDirective
8
9
import com.apollographql.apollo.ast.GQLDocument
9
10
import com.apollographql.apollo.ast.GQLFragmentDefinition
10
11
import com.apollographql.apollo.ast.GQLOperationDefinition
@@ -14,6 +15,7 @@ import com.apollographql.apollo.ast.IncompatibleDefinition
14
15
import com.apollographql.apollo.ast.Issue
15
16
import com.apollographql.apollo.ast.ParserOptions
16
17
import com.apollographql.apollo.ast.QueryDocumentMinifier
18
+ import com.apollographql.apollo.ast.Schema
17
19
import com.apollographql.apollo.ast.UnknownDirective
18
20
import com.apollographql.apollo.ast.UnusedFragment
19
21
import com.apollographql.apollo.ast.UnusedVariable
@@ -269,10 +271,19 @@ object ApolloCompiler {
269
271
}
270
272
}
271
273
274
+
272
275
val operations = definitions.filterIsInstance<GQLOperationDefinition >().map {
273
- addRequiredFields(it, addTypename, schema, fragmentDefinitions).let {
274
- documentTransform?.transform(schema, it) ? : it
276
+ var operation = addRequiredFields(it, addTypename, schema, fragmentDefinitions)
277
+ if (documentTransform != null ) {
278
+ operation = documentTransform.transform(schema, it)
279
+ }
280
+ if (schema.directiveDefinitions.containsKey(Schema .DISABLE_ERROR_PROPAGATION )
281
+ && schema.schemaDefinition?.directives?.any { schema.originalDirectiveName(it.name) == Schema .CATCH_BY_DEFAULT } == true ) {
282
+ operation = operation.copy(
283
+ directives = operation.directives + GQLDirective (null , Schema .DISABLE_ERROR_PROPAGATION , emptyList())
284
+ )
275
285
}
286
+ operation
276
287
}
277
288
278
289
// Remember the fragments with the possibly updated fragments
0 commit comments