Chromium Code Reviews| Index: lib/src/server/server.dart |
| diff --git a/lib/src/server/server.dart b/lib/src/server/server.dart |
| index 555bcedf1ca60a23e51e3f0324e50589c6738530..1c563ca8a8870d6472ad58f29a2a259805aec8f8 100644 |
| --- a/lib/src/server/server.dart |
| +++ b/lib/src/server/server.dart |
| @@ -254,17 +254,19 @@ class DevServer { |
| var out = new Directory(outDir); |
| if (!await out.exists()) await out.create(recursive: true); |
| - var mainHandler = |
| + var generatedHandler = |
| shelf_static.createStaticHandler(outDir, defaultDocument: _entryPath); |
| var sourceHandler = shelf_static.createStaticHandler(compiler.inputBaseDir, |
| serveFilesOutsidePath: true); |
| var topLevelHandler = (shelf.Request request) { |
| var path = request.url.path; |
| - if (path.endsWith('.dart')) { |
| - return sourceHandler(request); |
| - } else { |
| - return mainHandler(request); |
| + // Prefer generated code |
| + var response = generatedHandler(request); |
| + if (response.statusCode == 404) { |
|
Jennifer Messerly
2016/01/27 20:50:02
this feels a little bit off wrong in the architect
|
| + // Fall back on original sources |
| + response = sourceHandler(request); |
| } |
| + return response; |
| }; |
| var handler = const shelf.Pipeline() |