( group: ToolkitConnectionGroup, integrations: readonly Integration[], integrationPlugins: readonly IntegrationPlugin[], )
| 319 | }; |
| 320 | |
| 321 | const integrationMetaFor = ( |
| 322 | group: ToolkitConnectionGroup, |
| 323 | integrations: readonly Integration[], |
| 324 | integrationPlugins: readonly IntegrationPlugin[], |
| 325 | ): IntegrationMeta => { |
| 326 | const integration = integrations.find((row) => String(row.slug) === group.integration); |
| 327 | const fallbackName = group.integration |
| 328 | .replace(/[_-]/g, " ") |
| 329 | .replace(/\b\w/g, (character) => character.toUpperCase()); |
| 330 | const integrationSummary = { |
| 331 | id: group.integration, |
| 332 | kind: integration?.kind ?? group.integration, |
| 333 | name: integration?.name ?? fallbackName, |
| 334 | url: integration?.displayUrl, |
| 335 | }; |
| 336 | return { |
| 337 | name: integrationSummary.name, |
| 338 | integrationId: group.integration, |
| 339 | icon: integrationPresetIconUrl(integrationSummary, integrationPlugins), |
| 340 | ...(integrationSummary.url ? { url: integrationSummary.url } : {}), |
| 341 | }; |
| 342 | }; |
| 343 | |
| 344 | type ConfiguredConnectionView = { |
| 345 | readonly id: string; |
no test coverage detected