Skip to content

Commit 66f45cf

Browse files
committed
fix(selector): remove double type nesting
1 parent ecd16e6 commit 66f45cf

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/selector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ type PaginatedCollectionSelector<TDocument> = Selector<
242242
>;
243243

244244
export const createPaginatedCollectionSelector =
245-
<TDocument extends DocumentResult<ResourceCollectionDocumentResult<AnyResourceDeserializer>>>(
245+
<TDocument extends ResourceCollectionDocumentResult<AnyResourceDeserializer>>(
246246
documentSelector: Selector<TDocument>,
247247
): PaginatedCollectionSelector<TDocument> =>
248248
(raw: unknown) => {

test/selector.test.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
type Relationships,
55
createDataSelector,
66
createNullableResourceSelector,
7+
createPaginatedCollectionSelector,
78
createResourceCollectionSelector,
89
createResourceSelector,
910
} from "../src/index.js";
@@ -230,3 +231,31 @@ describe("crateDataSelector", () => {
230231
});
231232
});
232233
});
234+
235+
describe("cratePaginatedCollectionSelector", () => {
236+
it("should extract page params", () => {
237+
const selector = createPaginatedCollectionSelector(
238+
createResourceCollectionSelector({
239+
type: "article",
240+
attributesSchema: z.object({ title: z.string() }),
241+
}),
242+
);
243+
244+
const result = selector({
245+
data: [],
246+
links: {
247+
next: "/?page[number]=2",
248+
},
249+
});
250+
251+
expect(result).toEqual({
252+
data: [],
253+
links: {
254+
next: "/?page[number]=2",
255+
},
256+
pageParams: {
257+
next: { number: "2" },
258+
},
259+
});
260+
});
261+
});

0 commit comments

Comments
 (0)