Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Unified Diff: lib/src/server/server.dart

Issue 1530133003: Support source maps in server mode (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/src/server/server.dart
diff --git a/lib/src/server/server.dart b/lib/src/server/server.dart
index afc7982b56ad67a43abb86f6c9102e02ce7bc423..4a37217b7b77faf2376a3f7dc4489a7e3add5f97 100644
--- a/lib/src/server/server.dart
+++ b/lib/src/server/server.dart
@@ -134,6 +134,7 @@ class ServerCompiler extends AbstractCompiler {
}
void _buildDartLibrary(DartSourceNode node) {
+ print('Compiling ${node.uri}');
var source = node.source;
// TODO(sigmund): find out from analyzer team if there is a better way
context.applyChanges(new ChangeSet()..changedSource(source));
@@ -253,10 +254,21 @@ class DevServer {
var out = new Directory(outDir);
if (!await out.exists()) await out.create(recursive: true);
+ var mainHandler = shelf_static.createStaticHandler(outDir,
+ defaultDocument: _entryPath);
+ var sourceHandler = shelf_static.createStaticHandler(compiler.inputBaseDir, serveFilesOutsidePath: true);
+ var topLevelHandler = (Request request) {
+ var path = request.url.path;
+ if (path.endsWith('.dart')) {
+ return sourceHandler(request);
+ } else {
+ return mainHandler(request);
+ }
+ };
+
var handler = const shelf.Pipeline()
.addMiddleware(rebuildAndCache)
- .addHandler(shelf_static.createStaticHandler(outDir,
- defaultDocument: _entryPath));
+ .addHandler(topLevelHandler);
await shelf.serve(handler, host, port);
print('Serving $_entryPath at http://$host:$port/');
// Give the compiler a head start. This is not needed for correctness,
@@ -267,7 +279,6 @@ class DevServer {
}
shelf.Handler rebuildAndCache(shelf.Handler handler) => (request) {
- print('requested $GREEN_COLOR${request.url}$NO_COLOR');
// Trigger recompile only when requesting the HTML page.
var segments = request.url.pathSegments;
bool isEntryPage = segments.length == 0 || segments[0] == _entryPath;

Powered by Google App Engine
This is Rietveld 408576698