import { WorkerRouter } from "https://deno.land/x/shed@v0.1.0-pre.10/index.ts";
Register a special route to recover from an error during execution of a regular route.
In addition to the usual context properties, the provided handler receives a response
and error
property.
In case of a well-known error (typically caused by middleware),
the response
contains a Fetch API Response
object with matching status and status text set.
In case of an unknown error, the response
is a generic "internal server error" and the error
property
contains the value caught by the catch block.
Recover routes don't execute the router-level middleware (which might have caused the error), but can have middleware specifically for this route. Note that if another error occurs during the execution of this middleware, there are no more safety nets and an internal server error response is returned.
If a global DEBUG
variable is set (or process.env.NODE_ENV
is set to development
in case of webpack)
the router will throw on an unhandled error. This is to make it easier to spot problems during development.
Otherwise, the router will not throw but instead dispatch a error
event on itself before returning an empty
internal server error response.