OpenAPI: Add custom request timeout (#2415)

This commit is contained in:
Filip Papiernik
2025-10-01 20:54:26 +08:00
committed by GitHub
parent 3df3171ea4
commit ac8e67d5b2
3 changed files with 13 additions and 2 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'fumadocs-openapi': minor
---
OpenAPI: Custom request timeout for API playground
+6 -1
View File
@@ -107,6 +107,10 @@ export interface ClientProps extends HTMLAttributes<HTMLFormElement> {
references: Record<string, RequestSchema>;
proxyUrl?: string;
/**
* Request timeout in seconds (default: 10s)
*/
requestTimeout?: number;
fields?: {
parameter?: CustomField<
`${ParameterField['in']}.${string}`,
@@ -145,6 +149,7 @@ export default function Client({
references,
proxyUrl,
components: { ResultDisplay = DefaultResultDisplay } = {},
requestTimeout = 10,
...rest
}: ClientProps) {
const { server } = useServerSelectContext();
@@ -172,7 +177,7 @@ export default function Client({
const testQuery = useQuery(async (input: FormValues) => {
const fetcher = await import('./fetcher').then((mod) =>
mod.createBrowserFetcher(mediaAdapters),
mod.createBrowserFetcher(mediaAdapters, requestTimeout),
);
input._encoded ??= encodeRequestData(
+2 -1
View File
@@ -22,6 +22,7 @@ export interface Fetcher {
export function createBrowserFetcher(
adapters: Record<string, MediaAdapter>,
requestTimeout: number,
): Fetcher {
return {
async fetch(url, options) {
@@ -81,7 +82,7 @@ export function createBrowserFetcher(
cache: 'no-cache',
headers,
body,
signal: AbortSignal.timeout(10 * 1000),
signal: AbortSignal.timeout(requestTimeout * 1000),
})
.then(async (res) => {
const contentType = res.headers.get('Content-Type') ?? '';