UNPKG

@ai-sdk/provider-utils

Version:
33 lines (28 loc) 876 B
import { InvalidArgumentError } from '@ai-sdk/provider'; import { safeValidateTypes } from './validate-types'; import type { FlexibleSchema } from './schema'; export async function parseProviderOptions<OPTIONS>({ provider, providerOptions, schema, }: { provider: string; providerOptions: Record<string, unknown> | undefined; schema: FlexibleSchema<OPTIONS>; }): Promise<OPTIONS | undefined> { if (providerOptions?.[provider] == null) { return undefined; } const parsedProviderOptions = await safeValidateTypes<OPTIONS | undefined>({ value: providerOptions[provider], schema, }); if (!parsedProviderOptions.success) { throw new InvalidArgumentError({ argument: 'providerOptions', message: `invalid ${provider} provider options`, cause: parsedProviderOptions.error, }); } return parsedProviderOptions.value; }