@@ -481,11 +481,8 @@ interface PagedGeneratorCreateProps<TPagedResponseItem> {
481
481
get : ( pageStart : Required < PageOptions > , requestIndex : number ) => Promise < { total : number , items : TPagedResponseItem [ ] } > ;
482
482
}
483
483
async function createPagedGeneratorResponse < TPagedResponseItem > ( props : PagedGeneratorCreateProps < TPagedResponseItem > ) {
484
- const requestedPageStart = props . page ?. start ?? 0 ;
485
- const requestedPageSize = props . page ?. size ?? 0 ;
486
- let pageStart = requestedPageStart ;
487
- let pageSize = requestedPageSize ;
488
- let receivedItemsCount = 0 ;
484
+ let pageStart = props . page ?. start ?? 0 ;
485
+ let pageSize = props . page ?. size ?? 0 ;
489
486
let requestIndex = 0 ;
490
487
491
488
const firstPage = await props . get ( { start : pageStart , size : pageSize } , requestIndex ++ ) ;
@@ -496,21 +493,21 @@ async function createPagedGeneratorResponse<TPagedResponseItem>(props: PagedGene
496
493
while ( true ) {
497
494
for ( const item of partialResult . items ) {
498
495
yield item ;
499
- ++ receivedItemsCount ;
500
496
}
501
497
498
+ const receivedItemsCount = partialResult . items . length ;
502
499
if ( partialResult . total !== 0 && receivedItemsCount === 0 ) {
503
500
if ( pageStart >= partialResult . total )
504
501
throw new Error ( `Requested page with start index ${ pageStart } is out of bounds. Total number of items: ${ partialResult . total } ` ) ;
505
502
throw new Error ( "Paged request returned non zero total count but no items" ) ;
506
503
}
507
504
508
- if ( requestedPageSize !== 0 && receivedItemsCount >= requestedPageSize || receivedItemsCount >= ( partialResult . total - requestedPageStart ) )
505
+ if ( pageSize !== 0 && receivedItemsCount >= pageSize || receivedItemsCount >= ( partialResult . total - pageStart ) )
509
506
break ;
510
507
511
- if ( requestedPageSize !== 0 )
512
- pageSize = requestedPageSize - receivedItemsCount ;
513
- pageStart = requestedPageStart + receivedItemsCount ;
508
+ if ( pageSize !== 0 )
509
+ pageSize -= receivedItemsCount ;
510
+ pageStart += receivedItemsCount ;
514
511
515
512
partialResult = await props . get ( { start : pageStart , size : pageSize } , requestIndex ++ ) ;
516
513
}
0 commit comments