earningscall
Version:
The EarningsCall JavaScript library provides convenient access to the EarningsCall API. It includes a pre-defined set of classes for API resources that initialize themselves dynamically from API responses.
26 lines • 2.34 kB
JavaScript
export function camelCaseKeys(obj, options) {
const result = {};
for (const [key, value] of Object.entries(obj)) {
// Convert key from snake_case to camelCase
const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
// Handle nested objects if deep option is true
if (options.deep &&
value &&
typeof value === 'object' &&
!Array.isArray(value)) {
result[camelKey] = camelCaseKeys(value, options);
}
// Handle arrays if deep option is true
else if (options.deep && Array.isArray(value)) {
result[camelKey] = value.map((item) => item && typeof item === 'object'
? camelCaseKeys(item, options)
: item);
}
// Handle primitive values and shallow conversion
else {
result[camelKey] = value;
}
}
return result;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZWwtY2FzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2FtZWwtY2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUsYUFBYSxDQUMzQixHQUE0QixFQUM1QixPQUF5QjtJQUV6QixNQUFNLE1BQU0sR0FBNEIsRUFBRSxDQUFDO0lBRTNDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0MsMkNBQTJDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3RELE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FDckIsQ0FBQztRQUVGLCtDQUErQztRQUMvQyxJQUNFLE9BQU8sQ0FBQyxJQUFJO1lBQ1osS0FBSztZQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFDekIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUNyQixDQUFDO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGFBQWEsQ0FDOUIsS0FBZ0MsRUFDaEMsT0FBTyxDQUNSLENBQUM7UUFDSixDQUFDO1FBQ0QsdUNBQXVDO2FBQ2xDLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNwQyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtnQkFDOUIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUErQixFQUFFLE9BQU8sQ0FBQztnQkFDekQsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO1FBQ0osQ0FBQztRQUNELGlEQUFpRDthQUM1QyxDQUFDO1lBQ0osTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==