@@ -34,7 +34,7 @@ export class GraphqlErrorFormatter {
34
34
( ) =>
35
35
( { result, setResult } ) => {
36
36
if ( result . length > 0 ) {
37
- const errors = result . map ( ( error ) => this . formatError ( error ) ) ;
37
+ const errors = result . flatMap ( ( error ) => this . formatError ( error ) ) ;
38
38
setResult ( errors ) ;
39
39
}
40
40
} ;
@@ -43,7 +43,9 @@ export class GraphqlErrorFormatter {
43
43
onExecuteDone : ( params ) =>
44
44
handleStreamOrSingleExecutionResult ( params , ( { result, setResult } ) => {
45
45
if ( result . errors && result . errors . length > 0 ) {
46
- const errors = result . errors . map ( ( error ) => this . formatError ( error ) ) ;
46
+ const errors = result . errors . flatMap ( ( error ) =>
47
+ this . formatError ( error ) ,
48
+ ) ;
47
49
setResult ( { ...result , errors } ) ;
48
50
}
49
51
} ) ,
@@ -71,20 +73,23 @@ export class GraphqlErrorFormatter {
71
73
this . filter . logIt ( normalized , error . originalError ?? error ) ;
72
74
}
73
75
74
- const { message, stack, code : _ , ...extensions } = normalized ;
75
- const { codes } = extensions ;
76
+ // Unwrap AggregateError's errors to flat gql errors
77
+ return ( normalized . aggregatees ?? [ normalized ] ) . map ( ( innerEx ) => {
78
+ const { message, stack, code : _ , ...extensions } = innerEx ;
79
+ const { codes } = extensions ;
76
80
77
- // Schema & validation errors don't have meaningful stack traces, so remove them
78
- const worthlessTrace = codes . has ( 'Validation' ) || codes . has ( 'GraphQL' ) ;
79
- if ( ! worthlessTrace ) {
80
- extensions . stacktrace = stack . split ( '\n' ) ;
81
- }
81
+ // Schema & validation errors don't have meaningful stack traces, so remove them
82
+ const worthlessTrace = codes . has ( 'Validation' ) || codes . has ( 'GraphQL' ) ;
83
+ if ( ! worthlessTrace ) {
84
+ extensions . stacktrace = stack . split ( '\n' ) ;
85
+ }
82
86
83
- return new GraphQLError ( message , {
84
- nodes : error . nodes ,
85
- positions : error . positions ,
86
- path : error . path ,
87
- extensions : { ...error . extensions , ...extensions } ,
87
+ return new GraphQLError ( message , {
88
+ nodes : error . nodes ,
89
+ positions : error . positions ,
90
+ path : error . path ,
91
+ extensions : { ...error . extensions , ...extensions } ,
92
+ } ) ;
88
93
} ) ;
89
94
} ;
90
95
}
0 commit comments