MCPcopy
hub / github.com/redis/node-redis / refresh

Method refresh

packages/client/lib/authx/token-manager.ts:214–234  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

212 }
213
214 private async refresh(): Promise<void> {
215 if (!this.listener) {
216 throw new Error('TokenManager is not running, but refresh was called');
217 }
218
219 try {
220 await this.identityProvider.requestToken().then(this.handleNewToken);
221 this.retryAttempt = 0;
222 } catch (error) {
223
224 if (this.shouldRetry(error)) {
225 this.retryAttempt++;
226 const retryDelay = this.calculateRetryDelay();
227 this.notifyError(`Token refresh failed (attempt ${this.retryAttempt}), retrying in ${retryDelay}ms: ${error}`, true)
228 this.scheduleNextRefresh(retryDelay);
229 } else {
230 this.notifyError(error, false);
231 this.stop();
232 }
233 }
234 }
235
236 private handleNewToken = async ({ token: nativeToken, ttlMs }: TokenResponse<T>): Promise<void> => {
237 if (!this.listener) {

Callers 1

scheduleNextRefreshMethod · 0.95

Calls 6

shouldRetryMethod · 0.95
calculateRetryDelayMethod · 0.95
notifyErrorMethod · 0.95
scheduleNextRefreshMethod · 0.95
stopMethod · 0.95
requestTokenMethod · 0.65

Tested by

no test coverage detected