()
| 93 | } |
| 94 | |
| 95 | async refresh() { |
| 96 | if (this.refreshPromise) { |
| 97 | return this.refreshPromise; |
| 98 | } |
| 99 | |
| 100 | this.refreshPromise = (async () => { |
| 101 | try { |
| 102 | const response = await this.axiosInstance.post<JsonValue>("/auth/refresh", { |
| 103 | refreshToken: this.refreshToken, |
| 104 | }); |
| 105 | const resp = fromJson(RefreshTokenResponseSchema, response.data); |
| 106 | this.setTokens(resp.token, resp.refreshToken); |
| 107 | this.onTokenRefreshedEventEmitter.emit("tokenRefreshed", { |
| 108 | token: resp.token, |
| 109 | refreshToken: resp.refreshToken, |
| 110 | }); |
| 111 | } finally { |
| 112 | this.refreshPromise = null; |
| 113 | } |
| 114 | })(); |
| 115 | |
| 116 | return this.refreshPromise; |
| 117 | } |
| 118 | |
| 119 | private async requestWithRefresh(config: AxiosRequestConfig): Promise<JsonValue> { |
| 120 | try { |
no test coverage detected