refactor(providers): 重构基础 providers 定义和类型导出

将基础 provider IDs 和 schema 定义移到文件顶部
移除从 baseProviders 动态生成 IDs 的逻辑
使用 satisfies 约束 baseProviders 类型
This commit is contained in:
icarus 2025-08-29 18:30:00 +08:00
parent 3d131dc213
commit 005cd730b0

View File

@ -11,6 +11,39 @@ import { createOpenAICompatible } from '@ai-sdk/openai-compatible'
import { createXai } from '@ai-sdk/xai'
import * as z from 'zod'
/**
* Provider IDs
*/
export const baseProviderIds = [
'openai',
'openai-responses',
'openai-compatible',
'anthropic',
'google',
'xai',
'azure',
'deepseek'
] as const
/**
* Provider ID Schema
*/
export const baseProviderIdSchema = z.enum(baseProviderIds)
/**
* Provider ID
*/
export type BaseProviderId = z.infer<typeof baseProviderIdSchema>
export const baseProviderSchema = z.object({
id: baseProviderIdSchema,
name: z.string(),
creator: z.function().args(z.any()).returns(z.any()),
supportsImageGeneration: z.boolean()
})
export type BaseProvider = z.infer<typeof baseProviderSchema>
/**
* Providers
*
@ -64,18 +97,7 @@ export const baseProviders = [
creator: createDeepSeek,
supportsImageGeneration: false
}
] as const
/**
* Provider IDs
* baseProviders
*/
export const baseProviderIds = baseProviders.map((p) => p.id) as unknown as readonly [string, ...string[]]
/**
* Provider ID Schema
*/
export const baseProviderIdSchema = z.enum(baseProviderIds)
] as const satisfies BaseProvider[]
/**
* Provider ID Schema
@ -117,7 +139,6 @@ export const providerConfigSchema = z
* Provider ID - zod schema
*/
export type ProviderId = z.infer<typeof providerIdSchema>
export type BaseProviderId = z.infer<typeof baseProviderIdSchema>
export type CustomProviderId = z.infer<typeof customProviderIdSchema>
/**