UNPKG

call-ai

Version:

Lightweight library for making AI API calls with streaming support

50 lines 1.85 kB
import { URI } from "@adviser/cement"; export function recursivelyAddAdditionalProperties(schema) { const result = { ...schema }; if (result.type === "object") { if (result.additionalProperties === undefined) { result.additionalProperties = false; } if (result.properties) { result.properties = { ...result.properties }; if (result.required === undefined) { result.required = Object.keys(result.properties); } Object.keys(result.properties).forEach((key) => { const prop = result.properties[key]; if (prop && typeof prop === "object") { const oprop = prop; result.properties[key] = recursivelyAddAdditionalProperties(oprop); if (oprop.type === "object" && oprop.properties) { oprop.required = Object.keys(oprop.properties); } } }); } } if (result.type === "array" && result.items && typeof result.items === "object") { result.items = recursivelyAddAdditionalProperties(result.items); if (result.items.type === "object" && result.items.properties) { result.items.required = Object.keys(result.items.properties); } } return result; } export function entriesHeaders(headers) { const entries = []; headers.forEach((value, key) => { entries.push([key, value]); }); return entries; } export function callAiFetch(options) { return options.mock?.fetch || globalThis.fetch; } export function joinUrlParts(baseUrl, path) { if (!baseUrl) return path; if (!path) return baseUrl; return URI.from(baseUrl).build().resolve(path).toString(); } //# sourceMappingURL=utils.js.map