UNPKG

@trpc/client

Version:

The tRPC client library

28 lines (21 loc) • 739 B
import type { FetchEsque, NativeFetchEsque } from './internals/types'; type AnyFn = (...args: any[]) => unknown; const isFunction = (fn: unknown): fn is AnyFn => typeof fn === 'function'; /** * The `fetch` to use: `customFetchImpl` if given, or else the global one. * Throws if there's none. */ export function getFetch( customFetchImpl?: FetchEsque | NativeFetchEsque, ): FetchEsque { if (customFetchImpl) { return customFetchImpl as FetchEsque; } if (typeof window !== 'undefined' && isFunction(window.fetch)) { return window.fetch.bind(window); } if (typeof globalThis !== 'undefined' && isFunction(globalThis.fetch)) { return globalThis.fetch; } throw new Error('No fetch implementation found'); }