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); |
}); |
}; |
}; |