Client-side API Client in TypeScript
Does this look like a valid approach to build a client-side API client that will be called from normal TS (non Effect) code?
const retryPolicy = Schedule.exponential(5000).pipe(
Schedule.compose(Schedule.recurs(5)),
);
export const likePhotoRequest = (photo_id: string) =>
HttpClient.request
.post(`/api/photo/${photo_id}/like`)
.pipe(
HttpClient.client.fetchOk,
HttpClient.response.void,
Effect.retry(retryPolicy),
Effect.withSpan("likePhotoRequest"),
);
export const dislikePhotoRequest = (photo_id: string) =>
HttpClient.request
.del(`/api/photo/${photo_id}/like`)
.pipe(
HttpClient.client.fetchOk,
HttpClient.response.void,
Effect.retry(retryPolicy),
Effect.withSpan("dislikePhotoRequest"),
);const retryPolicy = Schedule.exponential(5000).pipe(
Schedule.compose(Schedule.recurs(5)),
);
export const likePhotoRequest = (photo_id: string) =>
HttpClient.request
.post(`/api/photo/${photo_id}/like`)
.pipe(
HttpClient.client.fetchOk,
HttpClient.response.void,
Effect.retry(retryPolicy),
Effect.withSpan("likePhotoRequest"),
);
export const dislikePhotoRequest = (photo_id: string) =>
HttpClient.request
.del(`/api/photo/${photo_id}/like`)
.pipe(
HttpClient.client.fetchOk,
HttpClient.response.void,
Effect.retry(retryPolicy),
Effect.withSpan("dislikePhotoRequest"),
);