app "echo" packages { pf: "https://github.com/roc-lang/basic-webserver/releases/download/0.1/dCL3KsovvV-8A5D_W_0X_abynkcRcoAngsgF0xtvQsk.tar.br" } imports [ pf.Stdout, pf.Task.{ Task }, pf.Http.{ Request, Response }, pf.Utc, ] provides [main] to pf main : Request -> Task Response [] main = \req -> # Log request date, method and url date <- Utc.now |> Task.map Utc.toIso8601Str |> Task.await {} <- Stdout.line "\(date) \(Http.methodToStr req.method) \(req.url)" |> Task.await # Respond with request body when req.body is EmptyBody -> Task.ok { status: 200, headers: [], body: [] } Body internal -> Task.ok { status: 200, headers: [], body: internal.body }