@@ -2,8 +2,6 @@ import { type HttpConfig, type Serializer } from "../../interfaces";
22import { mergeAbortSignals } from "./merge-abort-signals" ;
33import { mergeHeadersInit } from "./merge-headers-init" ;
44
5- const DEFAULT_TIMEOUT_MS = 1000 * 300 ;
6-
75export interface MastoHttpConfigProps {
86 /**
97 * REST API URL for your Mastodon instance.
@@ -18,7 +16,9 @@ export interface MastoHttpConfigProps {
1816 readonly accessToken ?: string ;
1917
2018 /**
21- * Timeout in milliseconds.
19+ * Timeout configuration
20+ *
21+ * - A number sets the timeout in milliseconds.
2222 *
2323 * Defaults to 1000 * 300 = 300 seconds.
2424 */
@@ -64,10 +64,6 @@ export class HttpConfigImpl implements HttpConfig {
6464 return url ;
6565 }
6666
67- private createTimeout ( ) : AbortSignal {
68- return AbortSignal . timeout ( this . props . timeout ?? DEFAULT_TIMEOUT_MS ) ;
69- }
70-
7167 private mergeHeadersWithDefaults ( override : HeadersInit = { } ) : Headers {
7268 const headersInit = mergeHeadersInit ( [
7369 this . props . requestInit ?. headers ?? { } ,
@@ -85,8 +81,11 @@ export class HttpConfigImpl implements HttpConfig {
8581 private mergeAbortSignalWithDefaults (
8682 signal ?: AbortSignal | null ,
8783 ) : AbortSignal {
88- const timeout = this . createTimeout ( ) ;
89- const signals : AbortSignal [ ] = [ timeout ] ;
84+ const signals : AbortSignal [ ] = [ ] ;
85+
86+ if ( this . props . timeout != undefined ) {
87+ signals . push ( AbortSignal . timeout ( this . props . timeout ) ) ;
88+ }
9089
9190 if ( this . props . requestInit ?. signal ) {
9291 signals . push ( this . props . requestInit . signal ) ;
0 commit comments