From d4488d08df58c2017aff5a5f20964d311a9d4886 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Tue, 15 Apr 2025 16:45:05 -0400 Subject: [PATCH] Make url optional. Remove krustykrab from dependencies for react-select-fetch --- packages/react-select-fetch/package.json | 1 - packages/react-select-fetch/src/get.ts | 5 ++++- packages/react-select-fetch/src/types.ts | 4 ++-- packages/react-select-fetch/src/useMapToAsyncPaginate.ts | 1 - 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/react-select-fetch/package.json b/packages/react-select-fetch/package.json index 8862e99..afe6079 100644 --- a/packages/react-select-fetch/package.json +++ b/packages/react-select-fetch/package.json @@ -43,7 +43,6 @@ "react-select-async-paginate": "^0.7.0" }, "dependencies": { - "krustykrab": "^1.1.0", "qs": "^6.14.0" }, "devDependencies": { diff --git a/packages/react-select-fetch/src/get.ts b/packages/react-select-fetch/src/get.ts index 1b4bf43..327333a 100644 --- a/packages/react-select-fetch/src/get.ts +++ b/packages/react-select-fetch/src/get.ts @@ -1,9 +1,12 @@ import { stringifyParams } from "./stringifyParams"; export const get = async ( - url: string, + url: string|undefined, params: Record, ): Promise => { + if (url == null) { + throw new Error("The `url` prop is required unless `get` is overridden.") + } const paramsStr = stringifyParams(params); const response: Response = await fetch(`${url}?${paramsStr}`, { diff --git a/packages/react-select-fetch/src/types.ts b/packages/react-select-fetch/src/types.ts index 4ec00ac..0e668b5 100644 --- a/packages/react-select-fetch/src/types.ts +++ b/packages/react-select-fetch/src/types.ts @@ -30,7 +30,7 @@ export type MapResponse> = ( ) => Response; export type Get = ( - url: string, + url: string|undefined, params: { [key: string]: unknown; }, @@ -40,7 +40,7 @@ export type UseSelectFetchMapParams< OptionType, Group extends GroupBase, > = { - url: string; + url?: string; queryParams?: { [key: string]: unknown; }; diff --git a/packages/react-select-fetch/src/useMapToAsyncPaginate.ts b/packages/react-select-fetch/src/useMapToAsyncPaginate.ts index 3e48022..ed89309 100644 --- a/packages/react-select-fetch/src/useMapToAsyncPaginate.ts +++ b/packages/react-select-fetch/src/useMapToAsyncPaginate.ts @@ -1,4 +1,3 @@ -import { getResult } from "krustykrab"; import { useCallback, useMemo } from "react"; import type { GroupBase } from "react-select"; import { checkIsResponse } from "react-select-async-paginate";