From fc387703ead729fcd04f9110034b0f80e7ce3801 Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Mon, 25 Mar 2024 14:27:01 +0300 Subject: [PATCH] Add camelCaseConverter helper function --- libs/common/src/helper/camelCaseConverter.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 libs/common/src/helper/camelCaseConverter.ts diff --git a/libs/common/src/helper/camelCaseConverter.ts b/libs/common/src/helper/camelCaseConverter.ts new file mode 100644 index 0000000..5cfc2ba --- /dev/null +++ b/libs/common/src/helper/camelCaseConverter.ts @@ -0,0 +1,20 @@ +export function convertKeysToCamelCase(obj: any): any { + if (!obj || typeof obj !== 'object') { + return obj; + } + + if (Array.isArray(obj)) { + return obj.map(convertKeysToCamelCase); + } + + const camelCaseObj: { [key: string]: any } = {}; + + for (const key of Object.keys(obj)) { + const camelCaseKey = key.replace(/_([a-z])/g, (_, letter) => + letter.toUpperCase(), + ); + camelCaseObj[camelCaseKey] = convertKeysToCamelCase(obj[key]); + } + + return camelCaseObj; +}