(http: HttpClient.HttpClient, value: CredentialValue)
| 188 | }) |
| 189 | |
| 190 | function fetchProviders(http: HttpClient.HttpClient, value: CredentialValue) { |
| 191 | const metadata = value.metadata |
| 192 | const server = typeof metadata?.server === "string" ? metadata.server : defaultServer |
| 193 | const orgID = typeof metadata?.orgID === "string" ? metadata.orgID : undefined |
| 194 | const token = value.type === "oauth" ? value.access : value.key |
| 195 | return http |
| 196 | .execute( |
| 197 | HttpClientRequest.get(`${server}/api/config`).pipe( |
| 198 | HttpClientRequest.acceptJson, |
| 199 | HttpClientRequest.bearerToken(token), |
| 200 | HttpClientRequest.setHeaders(orgID ? { "x-org-id": orgID } : {}), |
| 201 | ), |
| 202 | ) |
| 203 | .pipe( |
| 204 | Effect.flatMap((response) => { |
| 205 | if (response.status === 404) return Effect.succeed(undefined) |
| 206 | return HttpClientResponse.filterStatusOk(response).pipe( |
| 207 | Effect.flatMap(HttpClientResponse.schemaBodyJson(RemoteResponse)), |
| 208 | Effect.map((remote) => remote.config.provider), |
| 209 | ) |
| 210 | }), |
| 211 | ) |
| 212 | } |
| 213 | |
| 214 | function withoutCredentials(body: Readonly<Record<string, unknown>> | undefined) { |
| 215 | return Object.fromEntries(Object.entries(body ?? {}).filter(([key]) => key !== "apiKey" && key !== "headers")) |
no test coverage detected