@azure/openai-assistants
Version:
An isomorphic client library for Azure OpenAI Assistants.
84 lines • 2.39 kB
JavaScript
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
export function wrapError(f, message) {
try {
const result = f();
return result;
}
catch (cause) {
throw new Error(`${message}: ${cause}`);
}
}
/**
* Rename keys to camel case.
* @param obj - The object to rename keys to camel case
* @returns The object with keys renamed to camel case
*/
export function renameKeysToCamelCase(obj) {
for (const key of Object.keys(obj)) {
const value = obj[key];
const newKey = tocamelCase(key);
if (newKey !== key) {
delete obj[key];
}
obj[newKey] =
typeof value === "object"
? Array.isArray(value)
? value.map((v) => renameKeysToCamelCase(v))
: renameKeysToCamelCase(value)
: value;
}
return obj;
}
export function camelCaseKeys(obj) {
if (typeof obj !== "object" || !obj)
return obj;
if (Array.isArray(obj)) {
return obj.map((v) => camelCaseKeys(v));
}
else {
for (const key of Object.keys(obj)) {
const value = obj[key];
const newKey = tocamelCase(key);
if (newKey !== key) {
delete obj[key];
}
obj[newKey] =
typeof obj[newKey] === "object" ? camelCaseKeys(value) : value;
}
return obj;
}
}
export function snakeCaseKeys(obj) {
if (typeof obj !== "object" || !obj)
return obj;
if (Array.isArray(obj)) {
return obj.map((v) => snakeCaseKeys(v));
}
else {
for (const key of Object.keys(obj)) {
const value = obj[key];
const newKey = toSnakeCase(key);
if (newKey !== key) {
delete obj[key];
}
obj[newKey] =
typeof obj[newKey] === "object" ? snakeCaseKeys(value) : value;
}
return obj;
}
}
function tocamelCase(str) {
return str
.toLowerCase()
.replace(/([_][a-z])/g, (group) => group.toUpperCase().replace("_", ""));
}
function toSnakeCase(str) {
return str
.replace(/([A-Z])/g, (group) => `_${group.toLowerCase()}`)
.replace(/^_/, "");
}
export function unixToDate(unix) {
return new Date(unix * 1000);
}
//# sourceMappingURL=util.js.map