Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/model/src/utils/ |
Upload File : |
import { Type, Text } from 'main.core'; import { Utils } from 'im.v2.lib.utils'; import type { JsonObject, JsonValue } from 'main.core'; export const isNumberOrString = (target: JsonValue): boolean => { return Type.isNumber(target) || Type.isString(target); }; export const convertToString = (target: JsonValue): string => { return target.toString(); }; export const convertToNumber = (target: string | number): number => { return Number.parseInt(target, 10); }; export const convertToDate = (target: string) => { return Utils.date.cast(target, false); }; const SNAKE_CASE_REGEXP = /(_[\da-z])/gi; export const convertObjectKeysToCamelCase = (targetObject: JsonObject): JsonObject => { const resultObject = {}; Object.entries(targetObject).forEach(([key, value]) => { const newKey = prepareKey(key); if (Type.isPlainObject(value)) { resultObject[newKey] = convertObjectKeysToCamelCase(value); return; } if (Type.isArray(value)) { resultObject[newKey] = convertArrayItemsKeysToCamelCase(value); return; } resultObject[newKey] = value; }); return resultObject; }; const prepareKey = (rawKey: string): string => { let key = rawKey; if (key.search(SNAKE_CASE_REGEXP) !== -1) { key = key.toLowerCase(); } return Text.toCamelCase(key); }; const convertArrayItemsKeysToCamelCase = (targetArray: JsonValue[]): JsonValue[] => { return targetArray.map((arrayItem) => { if (!Type.isPlainObject(arrayItem)) { return arrayItem; } return convertObjectKeysToCamelCase(arrayItem); }); };