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: "0.1.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: TemplateRenderer.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: 17
Help us keep the lights on



1.0.0-rc.1.0 - Jul 8, 2018

Leaf Error Middleware 1.0.0 RC 1.0

Adds initial support for Vapor 3 and Leaf 3!

0.1.0 - Sep 23, 2017

Leaf Error Middleware 0.1.0

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