| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 import 'dart:convert'; | 6 import 'dart:convert'; |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 | 8 |
| 9 import 'package:barback/barback.dart'; | 9 import 'package:barback/barback.dart'; |
| 10 import "package:crypto/crypto.dart"; | 10 import "package:crypto/crypto.dart"; |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 // implicitly support that too. This follows Apache's behavior. | 128 // implicitly support that too. This follows Apache's behavior. |
| 129 logRequest(request, "302 Redirect to /${request.url}/"); | 129 logRequest(request, "302 Redirect to /${request.url}/"); |
| 130 return new shelf.Response.found('/${request.url}/'); | 130 return new shelf.Response.found('/${request.url}/'); |
| 131 }).catchError((newError, newTrace) { | 131 }).catchError((newError, newTrace) { |
| 132 // If we find neither the original file or the index, we should report | 132 // If we find neither the original file or the index, we should report |
| 133 // the error about the original to the user. | 133 // the error about the original to the user. |
| 134 throw newError is AssetNotFoundException ? error : newError; | 134 throw newError is AssetNotFoundException ? error : newError; |
| 135 }); | 135 }); |
| 136 }).catchError((error, trace) { | 136 }).catchError((error, trace) { |
| 137 if (error is! AssetNotFoundException) { | 137 if (error is! AssetNotFoundException) { |
| 138 trace = new Chain.forTrace(trace); | 138 var chain = new Chain.forTrace(trace); |
| 139 logRequest(request, "$error\n$trace"); | 139 logRequest(request, "$error\n$chain"); |
| 140 | 140 |
| 141 addError(error, trace); | 141 addError(error, chain); |
| 142 close(); | 142 close(); |
| 143 return new shelf.Response.internalServerError(); | 143 return new shelf.Response.internalServerError(); |
| 144 } | 144 } |
| 145 | 145 |
| 146 addResult(new BarbackServerResult._failure(request.url, id, error)); | 146 addResult(new BarbackServerResult._failure(request.url, id, error)); |
| 147 return notFound(request, asset: id); | 147 return notFound(request, asset: id); |
| 148 }).then((response) { | 148 }).then((response) { |
| 149 // Allow requests of any origin to access "pub serve". This is useful for | 149 // Allow requests of any origin to access "pub serve". This is useful for |
| 150 // running "pub serve" in parallel with another development server. Since | 150 // running "pub serve" in parallel with another development server. Since |
| 151 // "pub serve" is only used as a development server and doesn't require | 151 // "pub serve" is only used as a development server and doesn't require |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 } catch (error, trace) { | 190 } catch (error, trace) { |
| 191 addResult(new BarbackServerResult._failure(request.url, asset.id, error)); | 191 addResult(new BarbackServerResult._failure(request.url, asset.id, error)); |
| 192 | 192 |
| 193 // If we couldn't read the asset, handle the error gracefully. | 193 // If we couldn't read the asset, handle the error gracefully. |
| 194 if (error is FileSystemException) { | 194 if (error is FileSystemException) { |
| 195 // Assume this means the asset was a file-backed source asset | 195 // Assume this means the asset was a file-backed source asset |
| 196 // and we couldn't read it, so treat it like a missing asset. | 196 // and we couldn't read it, so treat it like a missing asset. |
| 197 return notFound(request, error: error.toString(), asset: asset.id); | 197 return notFound(request, error: error.toString(), asset: asset.id); |
| 198 } | 198 } |
| 199 | 199 |
| 200 trace = new Chain.forTrace(trace); | 200 var chain = new Chain.forTrace(trace); |
| 201 logRequest(request, "$error\n$trace"); | 201 logRequest(request, "$error\n$chain"); |
| 202 | 202 |
| 203 // Otherwise, it's some internal error. | 203 // Otherwise, it's some internal error. |
| 204 return new shelf.Response.internalServerError(body: error.toString()); | 204 return new shelf.Response.internalServerError(body: error.toString()); |
| 205 } | 205 } |
| 206 } | 206 } |
| 207 } | 207 } |
| 208 | 208 |
| 209 /// The result of the server handling a URL. | 209 /// The result of the server handling a URL. |
| 210 /// | 210 /// |
| 211 /// Only requests for which an asset was requested from barback will emit a | 211 /// Only requests for which an asset was requested from barback will emit a |
| (...skipping 23 matching lines...) Expand all Loading... |
| 235 : error = null, | 235 : error = null, |
| 236 isCached = false; | 236 isCached = false; |
| 237 | 237 |
| 238 BarbackServerResult._cached(this.url, this.id) | 238 BarbackServerResult._cached(this.url, this.id) |
| 239 : error = null, | 239 : error = null, |
| 240 isCached = true; | 240 isCached = true; |
| 241 | 241 |
| 242 BarbackServerResult._failure(this.url, this.id, this.error) | 242 BarbackServerResult._failure(this.url, this.id, this.error) |
| 243 : isCached = false; | 243 : isCached = false; |
| 244 } | 244 } |
| OLD | NEW |