(row: IntegrationRow)
| 1860 | // throw (malformed config it didn't guard) degrades to `[]` rather than |
| 1861 | // failing the catalog read. |
| 1862 | const describeAuthMethodsForRow = (row: IntegrationRow): readonly AuthMethodDescriptor[] => { |
| 1863 | const runtime = runtimes.get(row.plugin_id); |
| 1864 | const describe = runtime?.plugin.describeAuthMethods; |
| 1865 | if (!describe) return []; |
| 1866 | const record = rowToIntegrationRecord(row); |
| 1867 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: plugin-authored projector must never fail the catalog read |
| 1868 | try { |
| 1869 | return describe(record); |
| 1870 | } catch { |
| 1871 | return []; |
| 1872 | } |
| 1873 | }; |
| 1874 | |
| 1875 | const describeDisplayForRow = (row: IntegrationRow): IntegrationDisplayDescriptor => { |
| 1876 | const runtime = runtimes.get(row.plugin_id); |
no test coverage detected