Skip to content

Commit fc58037

Browse files
authored
Merge pull request #135 from basics/feature/ts-updates
fix: handle null requests in autoPagination and improve error handling
2 parents fbe264e + 0cdb8e9 commit fc58037

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

packages/operators/src/request/autoPagination.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
import type { Observable } from 'rxjs';
22

3-
import { concatMap, expand, filter, from, map } from 'rxjs';
3+
import { concatMap, expand, filter, from, map, of, throwError } from 'rxjs';
44

55
import { request } from '../request';
66

77
export type ResolveRoute = (
88
reqResp: Request | Response,
99
response?: Response
10-
) => Observable<Request>;
10+
) => Observable<Request | null>;
1111

1212
export function autoPagination({ resolveRoute }: { resolveRoute: ResolveRoute }) {
1313
return (source: Observable<Request | Response>) =>
1414
source.pipe(
15-
concatMap(req => from(resolveRoute(req)).pipe(request(), getNext(resolveRoute, req))),
15+
concatMap(req =>
16+
from(resolveRoute(req)).pipe(
17+
concatMap(req => {
18+
if (req === null) {
19+
return throwError(() => new Error('Request is empty!'));
20+
}
21+
return of(req);
22+
}),
23+
request(),
24+
getNext(resolveRoute, req)
25+
)
26+
),
1627
map(resp => resp.clone())
1728
);
1829
}

0 commit comments

Comments
 (0)