UNPKG

@debugg-ai/cli

Version:
74 lines 2.52 kB
"use strict"; // util/objectNaming.ts - Object case transformation utilities for API compatibility Object.defineProperty(exports, "__esModule", { value: true }); exports.objToSnakeCase = objToSnakeCase; exports.objToCamelCase = objToCamelCase; /** * Convert an object's keys from camelCase to snake_case recursively */ function objToSnakeCase(obj) { if (obj === null || obj === undefined || typeof obj !== 'object') { return obj; } if (Array.isArray(obj)) { return obj.map(objToSnakeCase); } const snakeCaseObj = {}; for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { const snakeKey = camelToSnakeCase(key); const value = obj[key]; if (value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date) && !(value instanceof Buffer)) { snakeCaseObj[snakeKey] = objToSnakeCase(value); } else if (Array.isArray(value)) { snakeCaseObj[snakeKey] = value.map(objToSnakeCase); } else { snakeCaseObj[snakeKey] = value; } } } return snakeCaseObj; } /** * Convert an object's keys from snake_case to camelCase recursively */ function objToCamelCase(obj) { if (obj === null || obj === undefined || typeof obj !== 'object') { return obj; } if (Array.isArray(obj)) { return obj.map(objToCamelCase); } const camelCaseObj = {}; for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { const camelKey = snakeToCamelCase(key); const value = obj[key]; if (value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date) && !(value instanceof Buffer)) { camelCaseObj[camelKey] = objToCamelCase(value); } else if (Array.isArray(value)) { camelCaseObj[camelKey] = value.map(objToCamelCase); } else { camelCaseObj[camelKey] = value; } } } return camelCaseObj; } /** * Convert a single camelCase string to snake_case */ function camelToSnakeCase(str) { return str.replace(/([A-Z])/g, '_$1').toLowerCase(); } /** * Convert a single snake_case string to camelCase */ function snakeToCamelCase(str) { return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase()); } //# sourceMappingURL=objectNaming.js.map