@@ -306,8 +306,8 @@ export class IncrementalPublisher {
306
306
if ( child . filtered ) {
307
307
continue ;
308
308
}
309
- const maybePendingSource = this . _publish ( child ) ;
310
- if ( maybePendingSource ) {
309
+ const maybePendingSources = this . _publish ( child ) ;
310
+ for ( const maybePendingSource of maybePendingSources ) {
311
311
pendingSources . add ( maybePendingSource ) ;
312
312
}
313
313
}
@@ -537,8 +537,8 @@ export class IncrementalPublisher {
537
537
if ( child . filtered ) {
538
538
continue ;
539
539
}
540
- const maybePendingSource = this . _publish ( child ) ;
541
- if ( maybePendingSource ) {
540
+ const maybePendingSources = this . _publish ( child ) ;
541
+ for ( const maybePendingSource of maybePendingSources ) {
542
542
newPendingSources . add ( maybePendingSource ) ;
543
543
}
544
544
}
@@ -649,7 +649,7 @@ export class IncrementalPublisher {
649
649
650
650
private _publish (
651
651
subsequentResultRecord : SubsequentResultRecord ,
652
- ) : DeferredFragmentRecord | StreamRecord | undefined {
652
+ ) : ReadonlyArray < DeferredFragmentRecord | StreamRecord > {
653
653
if ( isStreamItemsRecord ( subsequentResultRecord ) ) {
654
654
if ( subsequentResultRecord . isCompleted ) {
655
655
this . _push ( subsequentResultRecord ) ;
@@ -659,25 +659,31 @@ export class IncrementalPublisher {
659
659
660
660
const stream = subsequentResultRecord . streamRecord ;
661
661
if ( ! stream . pendingSent ) {
662
- return stream ;
662
+ return [ stream ] ;
663
663
}
664
- return ;
664
+ return [ ] ;
665
665
}
666
666
667
667
if ( subsequentResultRecord . _pending . size > 0 ) {
668
668
this . _introduce ( subsequentResultRecord ) ;
669
669
} else if (
670
- subsequentResultRecord . deferredGroupedFieldSetRecords . size > 0 ||
671
- subsequentResultRecord . children . size > 0
670
+ subsequentResultRecord . deferredGroupedFieldSetRecords . size === 0
672
671
) {
673
- this . _push ( subsequentResultRecord ) ;
672
+ const newPendingSources = [ ] ;
673
+ for ( const child of subsequentResultRecord . children ) {
674
+ const maybeNewPendingSources = this . _publish ( child ) ;
675
+ newPendingSources . push ( ...maybeNewPendingSources ) ;
676
+ }
677
+ return newPendingSources ;
674
678
} else {
675
- return ;
679
+ this . _push ( subsequentResultRecord ) ;
676
680
}
677
681
678
682
if ( ! subsequentResultRecord . pendingSent ) {
679
- return subsequentResultRecord ;
683
+ return [ subsequentResultRecord ] ;
680
684
}
685
+
686
+ return [ ] ;
681
687
}
682
688
683
689
private _getChildren (
0 commit comments