Refactor [Model] [LLM Api] Chaining Model

- [+] refactor(model.ts): change forEach loop to arrow function for readability and consistency
- [+] fix(model.ts): mark 'provider' property as optional in modelTable type
- [+] fix(model.ts): use optional chaining when assigning provider property in modelTable
This commit is contained in:
H0llyW00dzZ 2023-12-25 01:10:28 +07:00
parent 8ca525dc7a
commit e9def2cdc5
No known key found for this signature in database
GPG Key ID: 05C7FFFC0845C930
1 changed files with 16 additions and 17 deletions

View File

@ -10,24 +10,23 @@ export function collectModelTable(
available: boolean;
name: string;
displayName: string;
provider: LLMModel["provider"];
provider?: LLMModel["provider"]; // Marked as optional
}
> = {};
// default models
models.forEach(
(m) =>
(modelTable[m.name] = {
...m,
displayName: m.name,
}),
);
models.forEach((m) => {
modelTable[m.name] = {
...m,
displayName: m.name, // 'provider' is copied over if it exists
};
});
// server custom models
customModels
.split(",")
.filter((v) => !!v && v.length > 0)
.map((m) => {
.forEach((m) => {
const available = !m.startsWith("-");
const nameConfig =
m.startsWith("+") || m.startsWith("-") ? m.slice(1) : m;
@ -35,15 +34,15 @@ export function collectModelTable(
// enable or disable all models
if (name === "all") {
Object.values(modelTable).forEach((m) => (m.available = available));
Object.values(modelTable).forEach((model) => (model.available = available));
} else {
modelTable[name] = {
name,
displayName: displayName || name,
available,
provider: modelTable[name]?.provider, // Use optional chaining
};
}
modelTable[name] = {
name,
displayName: displayName || name,
available,
provider: modelTable[name].provider,
};
});
return modelTable;
}