From c5a6c975912e71fa37ba68ad16358f2d92f896b3 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod <sidharthv96@gmail.com> Date: Fri, 23 Aug 2024 17:58:33 +0530 Subject: [PATCH] feat: Make requestTimeout configurable Co-authored-by: Alois Klink <alois@mermaidchart.com> --- packages/sdk/src/index.ts | 9 ++++++--- packages/sdk/src/types.ts | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts index 5335bb7..ef7ce4a 100644 --- a/packages/sdk/src/index.ts +++ b/packages/sdk/src/index.ts @@ -16,7 +16,6 @@ import { URLS } from './urls.js'; const defaultBaseURL = 'https://www.mermaidchart.com'; // "http://127.0.0.1:5174" const authorizationURLTimeout = 60_000; -const requestTimeout = 30_000; export class MermaidChart { private clientID: string; @@ -26,13 +25,17 @@ export class MermaidChart { private pendingStates: Record<string, AuthState> = {}; private redirectURI!: string; private accessToken?: string; + private requestTimeout = 30_000; - constructor({ clientID, baseURL, redirectURI }: InitParams) { + constructor({ clientID, baseURL, redirectURI, requestTimeout }: InitParams) { this.clientID = clientID; this.setBaseURL(baseURL || defaultBaseURL); if (redirectURI) { this.setRedirectURI(redirectURI); } + if (requestTimeout) { + this.requestTimeout = requestTimeout; + } } public setRedirectURI(redirectURI: string) { @@ -53,7 +56,7 @@ export class MermaidChart { }); this.axios = defaultAxios.create({ baseURL: this.#baseURL, - timeout: requestTimeout, + timeout: this.requestTimeout, }); this.axios.interceptors.response.use((res: AxiosResponse) => { diff --git a/packages/sdk/src/types.ts b/packages/sdk/src/types.ts index 8f487b4..b755b56 100644 --- a/packages/sdk/src/types.ts +++ b/packages/sdk/src/types.ts @@ -2,6 +2,7 @@ export interface InitParams { clientID: string; redirectURI?: string; baseURL?: string; + requestTimeout?: number; } export interface OAuthAuthorizationParams {