axios.get(url, { params: { ...파라미터 }}) 와 같이 axios get 메서드 옵션의 params 필드를 사용할 수 있지만 기본값이 그대로 전달되는 경우 /api/factories?companyId=&factoryName= 와 같이 빈 문자열이 그대로 쿼리 스트링에 포함이 되었고 원치않는 응답이 전달되었습니다
따라서 위와 같이 쿼리 스트링을 직접 만들어서 조합하는 코드가 삽입되었습니다
빈 파라미터를 제거하고 우아하게 리팩터링하기
PR을 올렸을 때 중첩된 if 문에 대한 수정요청이 있었습니다
그리고 빈 파라미터를 제거하는 유틸함수를 만들고 get 메서드 옵션 중 params 필드로 넘겨서 리팩터링을 해보았습니다
// 빈 파라미터를 제거하는 유틸함수
export const removeEmptyField = <T extends Record<string, unknown>>(obj: T) => {
return Object.fromEntries(
Object.entries(obj).filter(([, v]) => {
if (v === null || v === undefined || v === '') {
return false;
}
if (Array.isArray(v) && v.length === 0) {
return false;
}
return true;
}),
) as T;
};