| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library shelf.cascade; | 5 library shelf.cascade; |
| 6 | 6 |
| 7 import 'handler.dart'; | 7 import 'handler.dart'; |
| 8 import 'response.dart'; | 8 import 'response.dart'; |
| 9 import 'util.dart'; | 9 import 'util.dart'; |
| 10 | 10 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 return syncFuture(() => _parent.handler(request)).then((response) { | 74 return syncFuture(() => _parent.handler(request)).then((response) { |
| 75 if (_shouldCascade(response)) return _handler(request); | 75 if (_shouldCascade(response)) return _handler(request); |
| 76 return response; | 76 return response; |
| 77 }); | 77 }); |
| 78 }; | 78 }; |
| 79 } | 79 } |
| 80 } | 80 } |
| 81 | 81 |
| 82 /// Computes the [Cascade._shouldCascade] function based on the user's | 82 /// Computes the [Cascade._shouldCascade] function based on the user's |
| 83 /// parameters. | 83 /// parameters. |
| 84 Function _computeShouldCascade(Iterable<int> statusCodes, | 84 Function _computeShouldCascade( |
| 85 Function shouldCascade) { | 85 Iterable<int> statusCodes, Function shouldCascade) { |
| 86 if (shouldCascade != null) return shouldCascade; | 86 if (shouldCascade != null) return shouldCascade; |
| 87 if (statusCodes == null) statusCodes = [404, 405]; | 87 if (statusCodes == null) statusCodes = [404, 405]; |
| 88 statusCodes = statusCodes.toSet(); | 88 statusCodes = statusCodes.toSet(); |
| 89 return (response) => statusCodes.contains(response.statusCode); | 89 return (response) => statusCodes.contains(response.statusCode); |
| 90 } | 90 } |
| OLD | NEW |