feat: add timeout support to RequestContext and isomorphic-fetch#22526
Open
dahaque wants to merge 1 commit intoOpenAPITools:masterfrom
Open
feat: add timeout support to RequestContext and isomorphic-fetch#22526dahaque wants to merge 1 commit intoOpenAPITools:masterfrom
dahaque wants to merge 1 commit intoOpenAPITools:masterfrom
Conversation
wing328
reviewed
Dec 11, 2025
| {{/browser}} | ||
| {{/platforms}} | ||
|
|
||
| function withTimeout(fetchFn: any, timeout?: number) { |
Member
There was a problem hiding this comment.
thanks for the PR
what about adding a docstring explaining what this function does?
please also follow step 3 in the PR checklist to update the samples so that CI can verify the change
Member
There was a problem hiding this comment.
please specify what unit the number is, also in the modules/openapi-generator/src/main/resources/typescript/http/http.mustache
Member
|
cc @TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02) @davidgamero (2022/03) @mkusaka (2022/04) @joscha (2024/10) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds first-class timeout support to the typescript-fetch generator so users can prevent requests from hanging indefinitely.
Why?
The current typescript-fetch client doesn’t offer any way to cancel or fail a request after a specified time.
When Kubernetes or any API becomes slow, consumers have no built-in way to enforce a timeout leading to stalled network calls.
This PR introduces a simple, lightweight solution.
What this PR does
Adds a withTimeout() wrapper
-Wraps fetch with an AbortController
-Automatically aborts the request when timeout limit is reached
-Forwards user-provided abort signals correctly
Extends RequestContext
-Adds a timeout?: number property
-Ensures timeout travels through the request flow cleanly
Integrates timeout into the generated IsomorphicFetchHttpLibrary
-Replaces direct use of fetch
-Uses withTimeout(fetch, request.getTimeout())
so all requests automatically inherit the timeout setting