import isObject from 'lodash/isObject'; import snakeCase from 'lodash/snakeCase'; export const isFormData = (data: unknown): data is FormData => { return data instanceof FormData; }; const excludedFields = ['img2txt_id']; const isExcludedField = (key: string) => { return excludedFields.includes(key); }; export const convertTheKeysOfTheObjectToSnake = (data: unknown) => { if (isObject(data) && !isFormData(data)) { return Object.keys(data).reduce>((pre, cur) => { const value = (data as Record)[cur]; pre[isFormData(value) || isExcludedField(cur) ? cur : snakeCase(cur)] = value; return pre; }, {}); } return data; }; export const getSearchValue = (key: string) => { const params = new URL(document.location as any).searchParams; return params.get(key); }; // Formatize numbers, add thousands of separators export const formatNumberWithThousandsSeparator = (numberStr: string) => { const formattedNumber = numberStr.replace(/\B(?=(\d{3})+(?!\d))/g, ','); return formattedNumber; };