UNPKG

together-ai-sdk

Version:

A typescript SDK for the Together AI API

90 lines (89 loc) 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.titleCase = exports.convertCamelCase = exports.camelCase2snakeCase = exports.convertSnakeCase = exports.snakeCase2camelCase = void 0; /** * Recursively convert all keys of an object from snake_case to camelCase * @param obj - the object to convert * @returns the object with new keys */ const snakeCase2camelCase = (obj) => { if (Array.isArray(obj)) return obj.map(exports.snakeCase2camelCase); if (typeof obj !== 'object' || !obj) return obj; const keys = Object.keys(obj); const newObj = {}; keys.forEach(key => { newObj[(0, exports.convertSnakeCase)(key)] = (0, exports.snakeCase2camelCase)(obj[key]); }); return newObj; }; exports.snakeCase2camelCase = snakeCase2camelCase; /** * Takes a snake case string and converts it into camel case * @param snakeCase - the string in snake case * @returns camel case string */ const convertSnakeCase = (snakeCase) => { if (!snakeCase.includes('_')) return snakeCase; const result = snakeCase.split('_').map(exports.titleCase).join(''); return result[0].toLowerCase() + result.slice(1); }; exports.convertSnakeCase = convertSnakeCase; /** * Recursively convert all keys of an object from camelCase to snake_case * @param obj - the object to convert * @returns the object with new keys */ const camelCase2snakeCase = (obj) => { if (Array.isArray(obj)) return obj.map(exports.camelCase2snakeCase); if (typeof obj !== 'object' || !obj) return obj; const keys = Object.keys(obj); const newObj = {}; keys.forEach(key => { newObj[(0, exports.convertCamelCase)(key)] = (0, exports.camelCase2snakeCase)(obj[key]); }); return newObj; }; exports.camelCase2snakeCase = camelCase2snakeCase; /** * Takes a camel case string and converts it into snake case * @param camelCase - the string in camel case * @returns snake case string */ const convertCamelCase = (camelCase) => { let snakeCase = ''; let currentStr = ''; for (let i = 0; i < camelCase.length; i++) { if (camelCase[i].toUpperCase() === camelCase[i] && /^[a-zA-Z()]+$/.test(camelCase[i])) { snakeCase += currentStr + '_'; currentStr = camelCase[i].toLowerCase(); } else { currentStr += camelCase[i]; } } let str = snakeCase + currentStr; while (str.startsWith('_')) { str = str.slice(1); } while (str.endsWith('_')) { str = str.slice(0, -1); } return str; }; exports.convertCamelCase = convertCamelCase; /** * Uppercases the first letter and lowercases all other letters * @param str - the string to title case * @returns the title cased string */ const titleCase = (str) => { if (str.length < 1) return str; return str[0].toUpperCase() + str.slice(1).toLowerCase(); }; exports.titleCase = titleCase;