fix(stalker): preserve catalog pagination metadata

This commit is contained in:
4gray committed 2026-07-27 10:48:16 +02:00
1 parent 00c85beb70
commit cede2c6bb3
3 files changed
+19 -5

No files matched your search

@@ -230,6 +230,7 @@ describe('stalker-operation-adapter', () => {
],
max_page_items: '10',
total_items: '25',
total_pages: '3',
},
})
).toEqual({
@@ -252,7 +253,9 @@ describe('stalker-operation-adapter', () => {
},
],
page: 2,
pageSize: 10,
total: 25,
totalPages: 3,
});
});
@@ -300,13 +300,22 @@ function mapCatalog(
);
const total = optionalNonNegativeInteger(envelope['total_items']);
const pageSize = optionalPositiveInteger(envelope['max_page_items']);
const totalPages =
optionalPositiveInteger(envelope['total_pages']) ??
(total !== undefined && pageSize !== undefined
? Math.ceil(total / pageSize)
: undefined);
const hasMore =
total !== undefined && page !== undefined
? pageSize !== undefined
? page * pageSize < total
: items.length > 0 && page * items.length < total
page !== undefined
? totalPages !== undefined
? page < totalPages
: total !== undefined && pageSize !== undefined
? page * pageSize < total
: total !== undefined
? items.length > 0 && page * items.length < total
: undefined
: undefined;
return compact({ hasMore, items, page, total });
return compact({ hasMore, items, page, pageSize, total, totalPages });
}
function mapCatalogItem(
@@ -143,7 +143,9 @@ export interface StalkerSessionCatalogItem {
export interface StalkerSessionCatalogResult {
items: readonly StalkerSessionCatalogItem[];
page?: number;
pageSize?: number;
total?: number;
totalPages?: number;
hasMore?: boolean;
}