fix(server): return validation error bodies

This commit is contained in:
Kit Langton
2026-05-09 14:39:25 -04:00
parent 57efec4429
commit ebe9dcf27e
3 changed files with 27 additions and 0 deletions
@@ -0,0 +1,21 @@
import { Effect } from "effect"
import { HttpServerResponse } from "effect/unstable/http"
import { HttpApiMiddleware } from "effect/unstable/httpapi"
export class SchemaErrorMiddleware extends HttpApiMiddleware.Service<SchemaErrorMiddleware>()(
"@opencode/ExperimentalHttpApiSchemaError",
) {}
export const schemaErrorLayer = HttpApiMiddleware.layerSchemaErrorTransform(SchemaErrorMiddleware, (error) => {
if (error.kind === "Body") return Effect.fail(error)
return Effect.succeed(
HttpServerResponse.jsonUnsafe(
{
data: {},
errors: [{ kind: error.kind, message: error.cause.message }],
success: false,
},
{ status: 400 },
),
)
})