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());