aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/customFetch.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-08-20 15:57:34 +0300
committerGitHub <noreply@github.com>2025-08-20 13:57:34 +0100
commitdd53ccb9624e719d019a8fe29fcd66415c1b1528 (patch)
tree5788b06d4280248cf0c0f837318b0722f6d4cdd7 /packages/shared/customFetch.ts
parent5f07b5075dd45b4b0f4ab35ee70412f11177eff4 (diff)
downloadkarakeep-dd53ccb9624e719d019a8fe29fcd66415c1b1528.tar.zst
deps: Upgrade expo & nextjs to react 19 (#1565)
* Attempt to upgrade expo 53 * Attempt upgrade nextjs * Fix a bunch of peer deps * upgrade some docs deps * fix typecheck * update the shadcn calendar component * more fixes * more fixes * revert ollama upgrade * update react version to use carets * remove react-select from landing * fix the typescript error caused by customFetch * upgrade the new grid user setting to nextjs 15 * mobile: enable react canary to support react 19.1 * upgrade react native menu * fix navigation context error
Diffstat (limited to 'packages/shared/customFetch.ts')
-rw-r--r--packages/shared/customFetch.ts31
1 files changed, 21 insertions, 10 deletions
diff --git a/packages/shared/customFetch.ts b/packages/shared/customFetch.ts
index e9ac8a89..18b4e133 100644
--- a/packages/shared/customFetch.ts
+++ b/packages/shared/customFetch.ts
@@ -1,13 +1,24 @@
import serverConfig from "./config";
-// Custom fetch function with configurable timeout
-export function customFetch(
- input: Parameters<typeof fetch>[0],
- init?: Parameters<typeof fetch>[1],
-): ReturnType<typeof fetch> {
- const timeout = serverConfig.inference.fetchTimeoutSec * 1000; // Convert to milliseconds
- return fetch(input, {
- signal: AbortSignal.timeout(timeout),
- ...init,
- });
+// Generic fetch function type that works across environments
+type FetchFunction = (
+ input: RequestInfo | URL | string,
+ init?: RequestInit,
+) => Promise<Response>;
+
+// Factory function to create a custom fetch with timeout for any fetch implementation
+export function createCustomFetch(fetchImpl: FetchFunction = globalThis.fetch) {
+ return function customFetch(
+ input: Parameters<typeof fetchImpl>[0],
+ init?: Parameters<typeof fetchImpl>[1],
+ ): ReturnType<typeof fetchImpl> {
+ const timeout = serverConfig.inference.fetchTimeoutSec * 1000; // Convert to milliseconds
+ return fetchImpl(input, {
+ signal: AbortSignal.timeout(timeout),
+ ...init,
+ });
+ };
}
+
+// Default export for backward compatibility - uses global fetch
+export const customFetch = createCustomFetch();