MCPcopy Index your code
hub / github.com/coder/coder / getReconnectSchedule

Function getReconnectSchedule

site/src/utils/reconnectingWebSocket.ts:152–184  ·  view source on GitHub ↗
({
	attempt,
	baseMs,
	maxMs,
	factor,
	jitter,
	random,
}: {
	attempt: number;
	baseMs: number;
	maxMs: number;
	factor: number;
	jitter: number;
	random: () => number;
})

Source from the content-addressed store, hash-verified

150};
151
152const getReconnectSchedule = ({
153 attempt,
154 baseMs,
155 maxMs,
156 factor,
157 jitter,
158 random,
159}: {
160 attempt: number;
161 baseMs: number;
162 maxMs: number;
163 factor: number;
164 jitter: number;
165 random: () => number;
166}): ReconnectSchedule => {
167 const safeMaxMs = normalizeDelayMs(maxMs, 0);
168 const rawDelayMs = normalizeDelayMs(
169 baseMs * factor ** (attempt - 1),
170 safeMaxMs,
171 );
172 const cappedDelayMs = Math.min(rawDelayMs, safeMaxMs);
173 const jitteredDelayMs = applyReconnectJitter({
174 delayMs: cappedDelayMs,
175 jitter,
176 random,
177 });
178 const delayMs = Math.min(jitteredDelayMs, safeMaxMs);
179 return {
180 attempt,
181 delayMs,
182 retryingAt: new Date(Date.now() + delayMs).toISOString(),
183 };
184};
185
186/**
187 * Creates a self-reconnecting WebSocket connection with capped

Callers 1

handleDisconnectFunction · 0.85

Calls 3

normalizeDelayMsFunction · 0.85
applyReconnectJitterFunction · 0.85
nowMethod · 0.45

Tested by

no test coverage detected