20 lines
540 B
TypeScript
20 lines
540 B
TypeScript
export type OpencodeProviderAccountLike = {
|
|
id: string;
|
|
vendorId: string;
|
|
};
|
|
|
|
export function sanitizeOpencodeProviderId(value: string): string {
|
|
return value
|
|
.trim()
|
|
.replace(/[^A-Za-z0-9_-]+/g, '-')
|
|
.replace(/^-+|-+$/g, '')
|
|
|| 'provider';
|
|
}
|
|
|
|
export function resolveOpencodeProviderId(account: OpencodeProviderAccountLike): string {
|
|
if (account.vendorId === 'custom' || account.vendorId === 'ollama') {
|
|
return sanitizeOpencodeProviderId(account.id);
|
|
}
|
|
return sanitizeOpencodeProviderId(account.vendorId);
|
|
}
|