mono项目开发模板,内置cli管理构建
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

17 lines
889 B

import type { XClientOptions, XRequest, XResponse } from "../core/types";
import { getProviderAdapter } from "../providers/registry";
import { resolveConfig } from "../runtime/config";
import { postJSON, throwForBadStatus } from "../runtime/http";
export const generate = async (options: XClientOptions, request: XRequest): Promise<XResponse> => {
const resolved = resolveConfig(request, options);
const adapter = getProviderAdapter(resolved.provider);
const providerRequest = adapter.toProviderRequest(request, resolved, false);
const response = await postJSON(resolved.fetchImpl, providerRequest, adapter);
await throwForBadStatus(response, adapter);
const payload = await response.json();
const normalized = adapter.fromProviderResponse(payload, resolved.provider);
return { ...normalized, provider: resolved.provider, model: normalized.model || resolved.model };
};