@@ -146,13 +146,13 @@ export type FormattedIncrementalResult<
146
146
| FormattedIncrementalStreamResult < TData , TExtensions > ;
147
147
148
148
export interface PendingResult {
149
+ id : string ;
149
150
path : ReadonlyArray < string | number > ;
150
151
label ?: string ;
151
152
}
152
153
153
154
export interface CompletedResult {
154
- path : ReadonlyArray < string | number > ;
155
- label ?: string ;
155
+ id : string ;
156
156
errors ?: ReadonlyArray < GraphQLError > ;
157
157
}
158
158
@@ -178,6 +178,7 @@ export interface FormattedCompletedResult {
178
178
* @internal
179
179
*/
180
180
export class IncrementalPublisher {
181
+ private _nextId = 0 ;
181
182
private _released : Set < SubsequentResultRecord > ;
182
183
private _pending : Set < SubsequentResultRecord > ;
183
184
@@ -372,7 +373,10 @@ export class IncrementalPublisher {
372
373
const pendingResults : Array < PendingResult > = [ ] ;
373
374
for ( const pendingSource of pendingSources ) {
374
375
pendingSource . pendingSent = true ;
376
+ const id = this . _getNextId ( ) ;
377
+ pendingSource . id = id ;
375
378
const pendingResult : PendingResult = {
379
+ id,
376
380
path : pendingSource . path ,
377
381
} ;
378
382
if ( pendingSource . label !== undefined ) {
@@ -383,6 +387,10 @@ export class IncrementalPublisher {
383
387
return pendingResults ;
384
388
}
385
389
390
+ private _getNextId ( ) : string {
391
+ return String ( this . _nextId ++ ) ;
392
+ }
393
+
386
394
private _subscribe ( ) : AsyncGenerator <
387
395
SubsequentIncrementalExecutionResult ,
388
396
void ,
@@ -596,11 +604,9 @@ export class IncrementalPublisher {
596
604
completedRecord : DeferredFragmentRecord | StreamRecord ,
597
605
) : CompletedResult {
598
606
const result : CompletedResult = {
599
- path : completedRecord . path ,
607
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
608
+ id : completedRecord . id ! ,
600
609
} ;
601
- if ( completedRecord . label !== undefined ) {
602
- result . label = completedRecord . label ;
603
- }
604
610
if ( completedRecord . errors . length > 0 ) {
605
611
result . errors = completedRecord . errors ;
606
612
}
@@ -736,6 +742,7 @@ export class DeferredGroupedFieldSetRecord {
736
742
export class DeferredFragmentRecord {
737
743
path : ReadonlyArray < string | number > ;
738
744
label : string | undefined ;
745
+ id : string | undefined ;
739
746
children : Set < SubsequentResultRecord > ;
740
747
deferredGroupedFieldSetRecords : Set < DeferredGroupedFieldSetRecord > ;
741
748
errors : Array < GraphQLError > ;
@@ -758,6 +765,7 @@ export class DeferredFragmentRecord {
758
765
export class StreamRecord {
759
766
label : string | undefined ;
760
767
path : ReadonlyArray < string | number > ;
768
+ id : string | undefined ;
761
769
errors : Array < GraphQLError > ;
762
770
earlyReturn ?: ( ( ) => Promise < unknown > ) | undefined ;
763
771
pendingSent ?: boolean ;
0 commit comments