| 549 | }) |
| 550 | |
| 551 | function assertUniqueGeneratedRoutes(providers: CatalogProvider[]): void { |
| 552 | const seenProviderHrefs = new Map<string, string>() |
| 553 | const seenModelHrefs = new Map<string, string>() |
| 554 | |
| 555 | for (const provider of providers) { |
| 556 | const existingProvider = seenProviderHrefs.get(provider.href) |
| 557 | if (existingProvider) { |
| 558 | throw new Error( |
| 559 | `Duplicate provider route detected: ${provider.href} for ${provider.id} and ${existingProvider}` |
| 560 | ) |
| 561 | } |
| 562 | seenProviderHrefs.set(provider.href, provider.id) |
| 563 | |
| 564 | for (const model of provider.models) { |
| 565 | const existingModel = seenModelHrefs.get(model.href) |
| 566 | if (existingModel) { |
| 567 | throw new Error( |
| 568 | `Duplicate model route detected: ${model.href} for ${model.id} and ${existingModel}` |
| 569 | ) |
| 570 | } |
| 571 | seenModelHrefs.set(model.href, model.id) |
| 572 | } |
| 573 | } |
| 574 | } |
| 575 | |
| 576 | assertUniqueGeneratedRoutes(rawProviders) |
| 577 | |