(row: IntegrationRow)
| 2578 | }; |
| 2579 | |
| 2580 | const describeDisplayForRow = (row: IntegrationRow): IntegrationDisplayDescriptor => { |
| 2581 | const runtime = runtimes.get(row.plugin_id); |
| 2582 | const describe = runtime?.plugin.describeIntegrationDisplay; |
| 2583 | if (!describe) return {}; |
| 2584 | const record = rowToIntegrationRecord(row); |
| 2585 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: plugin-authored projector must never fail the catalog read |
| 2586 | try { |
| 2587 | const display = describe(record); |
| 2588 | return { |
| 2589 | ...(display.url && display.url.length > 0 ? { url: display.url } : {}), |
| 2590 | ...(display.family && display.family.length > 0 ? { family: display.family } : {}), |
| 2591 | }; |
| 2592 | } catch { |
| 2593 | return {}; |
| 2594 | } |
| 2595 | }; |
| 2596 | |
| 2597 | // The declared health check off the integration row's own column. CORE |
| 2598 | // owns this storage (never the plugin config blob), so a plugin config |
no test coverage detected