diff --git a/.README.md b/.README.md index 298f3f6..06e6330 100644 --- a/.README.md +++ b/.README.md @@ -248,7 +248,7 @@ Defaults to `"offset"`. If using `params` with `page`, this indicates the page at which to start fetching. -Defaults to value of `firstPage`. +Defaults to `1`. ### `offset` @@ -256,7 +256,7 @@ Defaults to value of `firstPage`. If using `params` with `offset` and `limit`, this indicates the offset at which to start fetching. -Defaults to value of `firstOffset`. +Defaults to `0`. ### `limit` @@ -266,22 +266,6 @@ If using `params` with `offset` and `limit`, this indicates the size of each pag Defaults to the size of the first page fetched. -### `firstPage` - -`number` - -The first page index. - -Defaults to `1`. - -### `firstOffset` - -`number` - -The first offset index. - -Defaults to `0`. - ### `fetchOptions` `ResponseInit` (`Object`) diff --git a/src/index.ts b/src/index.ts index 6cd0a72..440963c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,8 +21,6 @@ export interface FetchPaginateNextOptions { url: string; response?: Response; pageItems: Item[]; - firstPage: number; - firstOffset: number; page: number; limit?: number; offset: number; @@ -91,8 +89,6 @@ export interface FetchPaginateOptions<$Body, Item> { offset?: number; params?: FetchPaginateParams; page?: number; - firstOffset?: number; - firstPage?: number; getFetch?: (args: FetchPaginateGetFetchArgs<$Body, Item>) => typeof fetch; } @@ -141,8 +137,6 @@ const getNextWithParams = ({ params, pageItems, url, - firstPage, - firstOffset, page, limit, offset, @@ -151,8 +145,6 @@ const getNextWithParams = ({ params?: FetchPaginateParams; pageItems: Item[]; url: string; - firstPage: number; - firstOffset: number; page: number; limit?: number; offset: number; @@ -177,9 +169,7 @@ const getNextWithParams = ({ const offsetParam = (params.offset === true ? undefined : params.offset) || "offset"; - if (nextOffset !== firstOffset) { - parsedUrl.searchParams.set(offsetParam, nextOffset.toString()); - } + parsedUrl.searchParams.set(offsetParam, nextOffset.toString()); if (nextLimit) { parsedUrl.searchParams.set(limitParam, nextLimit.toString()); @@ -193,15 +183,13 @@ const getNextWithParams = ({ } else { const nextPage = isFirst ? page : page + 1; - if (nextPage !== firstPage) { - const defaultPageValue = "page"; - parsedUrl.searchParams.set( - params === true || params.page === true - ? defaultPageValue - : params.page || defaultPageValue, - nextPage.toString() - ); - } + const defaultPageValue = "page"; + parsedUrl.searchParams.set( + params === true || params.page === true + ? defaultPageValue + : params.page || defaultPageValue, + nextPage.toString() + ); return { url: parsedUrl.toString(), @@ -214,8 +202,6 @@ const defaultNext = ({ url, response, pageItems, - firstPage, - firstOffset, page, limit, offset, @@ -226,8 +212,6 @@ const defaultNext = ({ url, pageItems, page, - firstPage, - firstOffset, limit, offset, params, @@ -256,8 +240,6 @@ const fetchPaginateIterator = <$Body, Item>( parse = defaultParse, next = defaultNext, until, - firstOffset = 0, - firstPage = 1, fetchOptions, getFetch = () => fetch, } = options; @@ -280,7 +262,7 @@ const fetchPaginateIterator = <$Body, Item>( const url = typeof $url === "string" ? $url : $url.toString(); - let { limit, offset = firstOffset, page = firstPage } = options; + let { limit, offset = 0, page = 1 } = options; let pages: $Body[] = []; let pageBody: $Body; @@ -332,8 +314,6 @@ const fetchPaginateIterator = <$Body, Item>( url: nextUrl, response, pageItems, - firstPage, - firstOffset, limit, offset, page, diff --git a/src/test/nocks.ts b/src/test/nocks.ts index 9a910c2..cf00a7b 100644 --- a/src/test/nocks.ts +++ b/src/test/nocks.ts @@ -29,6 +29,7 @@ nock(base) nock(base) .get("/paged") + .query({ page: "1" }) .times(Infinity) .reply(200, '{ "list": ["one"] }') .get("/paged") @@ -46,6 +47,7 @@ nock(base) nock(base) .get("/paged-empty-end") + .query({ page: "1" }) .times(Infinity) .reply(200, '{ "list": ["one"] }') .get("/paged-empty-end") @@ -81,7 +83,7 @@ nock(base) nock(base) .get("/offset-limit") .times(Infinity) - .query({ limit: "1" }) + .query({ offset: "0", limit: "1" }) .reply(200, '{ "list": ["one"] }') .get("/offset-limit") .times(Infinity)