From 6a44eac70c41bb1343a20ddf3ce775e416214d75 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 3 Mar 2026 09:04:44 -0800 Subject: refactor(effect): add request body schema decoders to api routes --- src/lib/Effect/requestBody.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/lib/Effect/requestBody.ts (limited to 'src/lib/Effect/requestBody.ts') diff --git a/src/lib/Effect/requestBody.ts b/src/lib/Effect/requestBody.ts new file mode 100644 index 00000000..c43c30b2 --- /dev/null +++ b/src/lib/Effect/requestBody.ts @@ -0,0 +1,15 @@ +import { Schema } from "effect"; + +type SyncDecodingSchema = Schema.Top & { + readonly DecodingServices: never; +}; + +export const decodeUnknownOrThrow = ( + schema: S, + input: unknown, +): S["Type"] => Schema.decodeUnknownSync(schema)(input); + +export const decodeRequestJsonOrThrow = async ( + request: Request, + schema: S, +): Promise => decodeUnknownOrThrow(schema, await request.json()); -- cgit v1.2.3