Skip to content

Commit fabaf07

Browse files
committed
pr comment
1 parent e9d9e03 commit fabaf07

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

webview-ui/src/components/settings/ModelPicker.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,19 @@ import { vscode } from "../../utils/vscode"
2323
import { normalizeApiConfiguration } from "./ApiOptions"
2424
import { ModelInfoView } from "./ModelInfoView"
2525

26-
interface ModelPickerProps {
26+
type ModelProvider = "glama" | "openRouter" | "unbound" | "requesty" | "openAi"
27+
28+
type ModelKeys<T extends ModelProvider> = `${T}Models`
29+
type ConfigKeys<T extends ModelProvider> = `${T}ModelId`
30+
type InfoKeys<T extends ModelProvider> = `${T}ModelInfo`
31+
type RefreshMessageType<T extends ModelProvider> = `refresh${Capitalize<T>}Models`
32+
33+
interface ModelPickerProps<T extends ModelProvider = ModelProvider> {
2734
defaultModelId: string
28-
modelsKey: "glamaModels" | "openRouterModels" | "unboundModels" | "requestyModels" | "openAiModels"
29-
configKey: "glamaModelId" | "openRouterModelId" | "unboundModelId" | "requestyModelId" | "openAiModelId"
30-
infoKey: "glamaModelInfo" | "openRouterModelInfo" | "unboundModelInfo" | "requestyModelInfo" | "openAiModelInfo"
31-
refreshMessageType:
32-
| "refreshGlamaModels"
33-
| "refreshOpenRouterModels"
34-
| "refreshUnboundModels"
35-
| "refreshRequestyModels"
36-
| "refreshOpenAiModels"
35+
modelsKey: ModelKeys<T>
36+
configKey: ConfigKeys<T>
37+
infoKey: InfoKeys<T>
38+
refreshMessageType: RefreshMessageType<T>
3739
refreshValues?: Record<string, any>
3840
serviceName: string
3941
serviceUrl: string

0 commit comments

Comments
 (0)