diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-08-20 15:57:34 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-20 13:57:34 +0100 |
| commit | dd53ccb9624e719d019a8fe29fcd66415c1b1528 (patch) | |
| tree | 5788b06d4280248cf0c0f837318b0722f6d4cdd7 /packages/shared/customFetch.ts | |
| parent | 5f07b5075dd45b4b0f4ab35ee70412f11177eff4 (diff) | |
| download | karakeep-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.ts | 31 |
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(); |
