(providers: ApiProvider[])
| 46 | // IDs are added first; labels only fill keys an ID has not already claimed, |
| 47 | // so a label collision can never silently shadow another provider's ID. |
| 48 | export function buildConfiguredProviderMap(providers: ApiProvider[]): Record<string, ApiProvider> { |
| 49 | const providerMap: Record<string, ApiProvider> = Object.create(null); |
| 50 | for (const provider of providers) { |
| 51 | providerMap[provider.id()] = provider; |
| 52 | } |
| 53 | for (const provider of providers) { |
| 54 | if (provider.label && !Object.hasOwn(providerMap, provider.label)) { |
| 55 | providerMap[provider.label] = provider; |
| 56 | } |
| 57 | } |
| 58 | return providerMap; |
| 59 | } |
| 60 | |
| 61 | function getConfiguredProvider( |
| 62 | id: string, |
no test coverage detected
searching dependent graphs…