@arizeai/phoenix-client
Version:
A client for the Phoenix API
73 lines • 2.91 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeDefaultClientOptions = exports.defaultGetEnvironmentOptions = void 0;
const zod_1 = __importDefault(require("zod"));
const phoenixEnvironmentSchema = zod_1.default.object({
PHOENIX_API_KEY: zod_1.default.string().optional(),
PHOENIX_HOST: zod_1.default.string().optional(),
PHOENIX_CLIENT_HEADERS: zod_1.default
.string()
.transform((s) => JSON.parse(s))
.transform((o) => zod_1.default.record(zod_1.default.string()).parse(o))
.optional(),
});
/**
* Parse environment variables from an opaque object into a PhoenixEnvironment object.
*
* @param environment - The environment variables object-like structure to parse.
* @returns The parsed PhoenixEnvironment object.
*/
const fromEnvironment = (environment) => {
var _a, _b;
return (_b = (_a = phoenixEnvironmentSchema.safeParse(environment)) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : {};
};
/**
* Convert a PhoenixEnvironment object into a ClientOptions object.
*
* @param environment - The PhoenixEnvironment object to convert.
* @returns The converted ClientOptions object.
*/
const phoenixEnvironmentToClientOptions = (environment) => {
var _a;
const options = {
baseUrl: environment.PHOENIX_HOST,
headers: Object.assign(Object.assign({}, ((_a = environment.PHOENIX_CLIENT_HEADERS) !== null && _a !== void 0 ? _a : {})), (environment.PHOENIX_API_KEY
? { Authorization: `Bearer ${environment.PHOENIX_API_KEY}` }
: {})),
};
// if headers is an empty object, delete it
if (options.headers && Object.keys(options.headers).length === 0) {
delete options.headers;
}
// filter out undefined values
// this will prevent clobbering over default values when merging
return Object.fromEntries(Object.entries(options).filter(([_, v]) => v !== undefined));
};
/**
* Get the environment options from the environment.
*
* @returns The environment options as a Partial<ClientOptions> object.
*/
const defaultGetEnvironmentOptions = () => {
// feature detect process and process.env
if (typeof process !== "object" || typeof process.env !== "object") {
return {};
}
return phoenixEnvironmentToClientOptions(fromEnvironment(process.env));
};
exports.defaultGetEnvironmentOptions = defaultGetEnvironmentOptions;
/**
* Make the default client options.
*
* @returns The default client options as a Partial<ClientOptions> object.
*/
const makeDefaultClientOptions = () => {
return {
baseUrl: "http://localhost:6006",
};
};
exports.makeDefaultClientOptions = makeDefaultClientOptions;
//# sourceMappingURL=config.js.map