From 0cdb8e9134ca37cb201c19a21708db0ab0c336f5 Mon Sep 17 00:00:00 2001 From: Thorn Walli Date: Thu, 18 Sep 2025 09:10:36 +0200 Subject: [PATCH] fix: handle null requests in autoPagination and improve error handling --- .../operators/src/request/autoPagination.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/operators/src/request/autoPagination.ts b/packages/operators/src/request/autoPagination.ts index fd359748..b1634b56 100644 --- a/packages/operators/src/request/autoPagination.ts +++ b/packages/operators/src/request/autoPagination.ts @@ -1,18 +1,29 @@ import type { Observable } from 'rxjs'; -import { concatMap, expand, filter, from, map } from 'rxjs'; +import { concatMap, expand, filter, from, map, of, throwError } from 'rxjs'; import { request } from '../request'; export type ResolveRoute = ( reqResp: Request | Response, response?: Response -) => Observable; +) => Observable; export function autoPagination({ resolveRoute }: { resolveRoute: ResolveRoute }) { return (source: Observable) => source.pipe( - concatMap(req => from(resolveRoute(req)).pipe(request(), getNext(resolveRoute, req))), + concatMap(req => + from(resolveRoute(req)).pipe( + concatMap(req => { + if (req === null) { + return throwError(() => new Error('Request is empty!')); + } + return of(req); + }), + request(), + getNext(resolveRoute, req) + ) + ), map(resp => resp.clone()) ); }