From 7574dffb0b0428f400ceb6e446516e44a89941fa Mon Sep 17 00:00:00 2001 From: keyy1315 Date: Thu, 7 Aug 2025 14:07:41 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20snakecase=20=EB=B3=80=ED=99=98=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=A0=95=EA=B7=9C=EC=8B=9D=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 공통코드의 REF_CHR1, REF_NUM1 필드가 정규식 조건에 걸리지 않는 문제로 정규식 조건 수정 --- src/hooks/useAxios.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/hooks/useAxios.ts b/src/hooks/useAxios.ts index 27b04a8..b905511 100644 --- a/src/hooks/useAxios.ts +++ b/src/hooks/useAxios.ts @@ -91,15 +91,13 @@ export function useAxios() { // Handle uppercase snake_case (e.g., USER_NAME -> userName) // Handle lowercase snake_case (e.g., user_name -> userName) - if (/^[A-Z_]+$/.test(key) || /^[a-z_]+$/.test(key)) { + if (/^[A-Z0-9_]+$/.test(key) || /^[a-z0-9_]+$/.test(key)) { transformedKey = snakeToCamel(key) } // Handle single uppercase word (e.g., ROLE -> role) - else if (/^[A-Z]+$/.test(key)) { + else if (/^[A-Z0-9]+$/.test(key)) { transformedKey = key.toLowerCase() } - // Preserve existing camelCase - acc[transformedKey] = transformObjectKeys(obj[key]) return acc }, {}) @@ -109,7 +107,7 @@ export function useAxios() { } const snakeToCamel = (str: string): string => { - return str.toLowerCase().replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', '')) + return str.toLowerCase().replace(/_([a-z])/g, (match, letter) => letter.toUpperCase()) } return {