Chromium Code Reviews| Index: pkg/shelf/lib/src/middleware.dart |
| diff --git a/pkg/shelf/lib/src/middleware.dart b/pkg/shelf/lib/src/middleware.dart |
| index 228761dea6862084c17f9872997140779a4692c6..863084b0b126081e01c04072580522af80404d03 100644 |
| --- a/pkg/shelf/lib/src/middleware.dart |
| +++ b/pkg/shelf/lib/src/middleware.dart |
| @@ -54,17 +54,23 @@ Middleware createMiddleware({requestHandler(Request request), |
| if (responseHandler == null) responseHandler = (response) => response; |
| + if (errorHandler == null) errorHandler = (error, stackTrace) => throw error; |
|
nweiz
2014/10/14 21:21:18
Remove this; it's redundant with the [onError] stu
kevmoo
2014/10/14 22:07:05
Done.
|
| + |
| + var onError = null; |
| + if (errorHandler != null) { |
| + onError = (error, stackTrace) { |
| + if (error is HijackException) throw error; |
| + return errorHandler(error, stackTrace); |
| + }; |
| + } |
| + |
| return (Handler innerHandler) { |
| return (request) { |
| return syncFuture(() => requestHandler(request)).then((response) { |
| if (response != null) return response; |
| return syncFuture(() => innerHandler(request)) |
| - .then((response) => responseHandler(response), |
| - onError: (error, stackTrace) { |
| - if (error is HijackException) throw error; |
| - return errorHandler(error, stackTrace); |
| - }); |
| + .then((response) => responseHandler(response), onError: onError); |
| }); |
| }; |
| }; |