import { ErrorMessages } from '../constants'; import type { SuccessResponse, ErrorResponse, NetworkResponse, } from '../types'; export default function responseHandler( status: number, response?: R | string, ): Promise> { return new Promise((resolve) => { if (status >= 200 && status < 300) { const castResp = response as R; const successResponse: SuccessResponse = { ok: true, status, response: castResp, }; resolve(successResponse); // Usually a 422 from Flow API with validation errors } if (response) { const errorResp: ErrorResponse = { ok: false, status, error: response, }; resolve(errorResp); // Handle case where response is an error and body is empty } resolve({ ok: false, status, error: { messages: [ErrorMessages.NETWORK_ERROR], }, }); }); }