From daf29567d576855fd26ef145edcb5b2a23c176f3 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Mon, 16 Dec 2024 20:11:50 +0530 Subject: [PATCH] feat: update useTransformKeys --- .../dashboard/composables/useTransformKeys.js | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/app/javascript/dashboard/composables/useTransformKeys.js b/app/javascript/dashboard/composables/useTransformKeys.js index 4f4767a87..2397e6319 100644 --- a/app/javascript/dashboard/composables/useTransformKeys.js +++ b/app/javascript/dashboard/composables/useTransformKeys.js @@ -3,6 +3,7 @@ import { unref } from 'vue'; import camelcaseKeys from 'camelcase-keys'; import snakecaseKeys from 'snakecase-keys'; +import * as Sentry from '@sentry/vue'; /** * Vue composable that converts object keys to camelCase @@ -12,8 +13,18 @@ import snakecaseKeys from 'snakecase-keys'; * @returns {Object|Array} Converted payload with camelCase keys */ export function useCamelCase(payload, options) { - const unrefPayload = unref(payload); - return camelcaseKeys(unrefPayload, options); + try { + const unrefPayload = unref(payload); + return camelcaseKeys(unrefPayload, options); + } catch (e) { + Sentry.setContext('transform-keys-error', { + payload, + options, + op: 'camelCase', + }); + Sentry.captureException(e); + return payload; + } } /** @@ -24,6 +35,16 @@ export function useCamelCase(payload, options) { * @returns {Object|Array} Converted payload with snake_case keys */ export function useSnakeCase(payload, options) { - const unrefPayload = unref(payload); - return snakecaseKeys(unrefPayload, options); + try { + const unrefPayload = unref(payload); + return snakecaseKeys(unrefPayload, options); + } catch (e) { + Sentry.setContext('transform-keys-error', { + payload, + options, + op: 'snakeCase', + }); + Sentry.captureException(e); + return payload; + } }