2 Commits

Author SHA1 Message Date
Unbound Release e18b226356 chore(release): prepare for v0.0.4 2025-06-16 10:09:08 +00:00
argoyle a8a1c613a4 fix(pagination): handle empty page return case
Adds a check for empty pages in the pagination logic to return a 
nil slice and empty PageInfo when there are no items to display. 
Updates tests to verify the behavior when no more items are 
available, ensuring robustness in pagination functionality.
2025-06-16 12:04:52 +02:00
3 changed files with 15 additions and 0 deletions
+6
View File
@@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
## [0.0.4] - 2025-06-16
### 🐛 Bug Fixes
- *(pagination)* Handle empty page return case
## [0.0.3] - 2025-06-16
### 🐛 Bug Fixes
+3
View File
@@ -88,6 +88,9 @@ func GetPage[T any](items []T, first *int, after *string, last *int, before *str
eIx = idx
}
page := items[sIx:min(eIx, len(items))]
if len(page) == 0 {
return nil, PageInfo{}
}
return page, PageInfo{
StartCursor: ptr(EncodeCursor(fn(page[0]))),
HasNextPage: eIx < len(items),
+6
View File
@@ -45,6 +45,12 @@ func TestGetPage(t *testing.T) {
EndCursor: ptr("Mg=="),
},
},
{
name: "no more items",
args: args[string]{items: []string{"1", "2", "3"}, first: ptr(2), after: ptr("Mw=="), max: 10, fn: func(s string) string { return s }},
wantItems: nil,
wantPageInfo: PageInfo{},
},
{
name: "first 10",
args: args[string]{items: []string{"1", "2", "3"}, first: ptr(10), max: 10, fn: func(s string) string { return s }},