Swiftpack.co - Package - brokenhandsio/leaf-error-middleware

Leaf Error Middleware

Language Build Status Code Coverage MIT License

Leaf Error Middleware is a piece of middleware for Vapor which allows you to return custom 404 and server error pages.

Note that this middleware is designed to be used for Leaf front-end websites only - it should not be used for providing JSON error responses for an API, for example.


First, add LeafErrorMiddleware as a dependency in your Package.swift file:

dependencies: [
    // ...,
    .package(url: "https://github.com/brokenhandsio/leaf-error-middleware.git", from: "1.0.0")
targets: [
    .target(name: "App", dependencies: ["Vapor", ..., "LeafErrorMiddleware"]),
    // ...

To use the LeafErrorMiddleware, register the middleware service in configure.swift (make sure you import LeafErrorMiddleware at the top):

// You must set the preferred renderer:
config.prefer(LeafRenderer.self, for: ViewRenderer.self)

services.register { worker in
    return try LeafErrorMiddleware(environment: worker.environment)

Then add it to your MiddlewareConfig:

var middlewares = MiddlewareConfig()
// ...

This replaces the default error middleware in Vapor, so do not add the default ErrorMiddleware to your MiddlewareConfig.

Setting Up

You need to include two Leaf templates in your application:

  • 404.leaf
  • serverError.leaf

When Leaf Error Middleware catches a 404 error, it will return the 404.leaf template. Any other error caught will return the serverError.leaf template. The serverError.leaf template will be passed two parameters:

  • status - the status code of the error caught
  • statusMessage - a reason for the status code


Stars: 30


Used By

Total: 0


1.2.0 - 2019-09-11 11:56:24

Leaf Error Middleware 1.2.0

New features:

  • #10 - allows Abort.redirect(to:) to pass through and redirect instead of catching it in the middleware

1.1.0 - 2019-02-01 13:42:29

Leaf Error Middleware 1.1.0

Fixes in this release:

  • #7 - catch errors when they are thrown inside a future

1.0.0 - 2018-08-30 12:38:15

Leaf Error Middleware 1.0.0

Now supports Vapor 3! See the README for more details

1.0.0 RC 1.0 - 2018-07-08 19:24:19

Leaf Error Middleware 1.0.0 RC 1.0

Adds initial support for Vapor 3 and Leaf 3!

0.1.0 - 2017-09-23 18:52:27

Leaf Error Middleware 0.1.0

Initial release of Leaf Error Middleware! See the README for details on how to use!