History

Clean OpenAPI invoke error handling

Rhys Sullivan committed 6 months ago

Commit 77e62f31 parent b039b6e1 file · +10 −10Browse files

Unified · Split

packages/plugins/openapi/src/sdk/invoke.ts+10−10
@@ -117,13 +117,13 @@ export const resolveHeaders = ( · 116 unmodified lines
117117 typeof value === "string"
118118 ? Effect.succeed({ name, value })
119119 : secrets.get(value.secretId).pipe(
120− Effect.mapError((err) =>
121− "_tag" in err && err._tag === "SecretOwnedByConnectionError"
122− ? new OpenApiInvocationError({
123− message: `Failed to resolve secret "${value.secretId}" for header "${name}"`,
124− statusCode: Option.none(),
125− })
126− : err,
120+ Effect.catchTag("SecretOwnedByConnectionError", () =>
121+ Effect.fail(
122+ new OpenApiInvocationError({
123+ message: `Failed to resolve secret "${value.secretId}" for header "${name}"`,
124+ statusCode: Option.none(),
125+ }),
126+ ),
127127 ),
128128 Effect.flatMap((secret) =>
129129 secret === null
@@ -585,7 +585,7 @@ export const invoke = Effect.fn("OpenApi.invoke")(function* ( · 455 unmodified lines
585585 Effect.mapError(
586586 (err) =>
587587 new OpenApiInvocationError({
588− message: `HTTP request failed: ${err.message}`,
588+ message: "HTTP request failed",
589589 statusCode: Option.none(),
590590 cause: err,
591591 }),
@@ -600,9 +600,9 @@ export const invoke = Effect.fn("OpenApi.invoke")(function* ( · 8 unmodified lines
600600
601601 const contentType = response.headers["content-type"] ?? null;
602602 const mapBodyError = Effect.mapError(
603− (err: { readonly message?: string }) =>
603+ (err: unknown) =>
604604 new OpenApiInvocationError({
605− message: `Failed to read response body: ${err.message ?? String(err)}`,
605+ message: "Failed to read response body",
606606 statusCode: Option.some(status),
607607 cause: err,
608608 }),