Skip to content

Instantly share code, notes, and snippets.

@zaetrik
Last active April 30, 2020 07:45
Show Gist options
  • Save zaetrik/8e85867badffbcb5e89b8ad4a4a4a575 to your computer and use it in GitHub Desktop.
Save zaetrik/8e85867badffbcb5e89b8ad4a4a4a575 to your computer and use it in GitHub Desktop.
Omicron - Middleware: req to Option
import * as E from "fp-ts/lib/Either";
import * as O from "fp-ts/lib/Option";
import { RouteHandler, r, useMiddleware, Middleware, HttpRequest } from "@zaetrik/omicron";
const toOption: Middleware = (req: HttpRequest): E.Either<Error, O.Option<RequestBody>> =>
E.tryCatch(() =>
O.some(req.body), E.toError);
const routeHandler: RouteHandler = r
("/")
("GET")
(useMiddleware
([toOption])
((req: O.Option<RequestBody>) => req))
((_, err) => err.message);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment