const retryPolicy = Schedule.addDelay(
Schedule.recurs(3),
() => "1 minutes",
)
export const fetchEffect = (url: string, headers?: Record<string, string>) =>
Effect.retry(
HttpClient.pipe(
Effect.flatMap((httpClient) => httpClient.fetch(url, { headers })),
Effect.flatMap((response) =>
response.ok
? Effect.succeed(response)
: Effect.fail(new ResponseNotOkError())
),
),
retryPolicy,
)
const retryPolicy = Schedule.addDelay(
Schedule.recurs(3),
() => "1 minutes",
)
export const fetchEffect = (url: string, headers?: Record<string, string>) =>
Effect.retry(
HttpClient.pipe(
Effect.flatMap((httpClient) => httpClient.fetch(url, { headers })),
Effect.flatMap((response) =>
response.ok
? Effect.succeed(response)
: Effect.fail(new ResponseNotOkError())
),
),
retryPolicy,
)