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

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

Issue 1645343002: Builds / serves multiple HTML files. (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Cleanup Created 4 years, 11 months 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 b5468dc39be08d784a644fc79901ecba70579007..92ed92855e1549d761fe805fb980c9957cde5a9d 100644
--- a/lib/src/server/server.dart
+++ b/lib/src/server/server.dart
@@ -37,7 +37,7 @@ import 'dependency_graph.dart';
/// Encapsulates the logic when the compiler is run as a development server.
class ServerCompiler extends AbstractCompiler {
- final SourceNode _entryNode;
+ SourceNode _entryNode;
List<LibraryInfo> _libraries = <LibraryInfo>[];
final _generators = <CodeGenerator>[];
bool _hashing;
@@ -46,22 +46,30 @@ class ServerCompiler extends AbstractCompiler {
factory ServerCompiler(AnalysisContext context, CompilerOptions options,
{AnalysisErrorListener reporter}) {
var srcOpts = options.sourceOptions;
- var inputFile = options.inputs[0];
- var inputUri =
+ var inputFiles = options.inputs;
+ var inputUris = inputFiles.map((String inputFile) =>
inputFile.startsWith('dart:') || inputFile.startsWith('package:')
? Uri.parse(inputFile)
: new Uri.file(path.absolute(srcOpts.useImplicitHtml
? SourceResolverOptions.implicitHtmlFile
- : inputFile));
+ : inputFile)));
var graph = new SourceGraph(context, reporter, options);
- var entryNode = graph.nodeFromUri(inputUri);
+ var entryNodes = inputUris.map((inputUri) => graph.nodeFromUri(inputUri));
- return new ServerCompiler._(context, options, reporter, entryNode);
+ return new ServerCompiler._(context, options, reporter, graph, entryNodes);
}
- ServerCompiler._(AnalysisContext context, CompilerOptions options,
- AnalysisErrorListener reporter, this._entryNode)
+ ServerCompiler._(
+ AnalysisContext context,
+ CompilerOptions options,
+ AnalysisErrorListener reporter,
+ SourceGraph graph,
+ List<SourceNode> entryNodes)
: super(context, options, reporter) {
+ _entryNode = entryNodes.length == 1
+ ? entryNodes.first
+ : new EntryNode(graph, new Uri.file(inputBaseDir), entryNodes);
+
if (outputDir != null) {
_generators.add(new JSGenerator(this));
}
@@ -69,8 +77,6 @@ class ServerCompiler extends AbstractCompiler {
_hashing = options.enableHashing && _generators.length == 1;
}
- Uri get entryPointUri => _entryNode.uri;
-
CheckerResults run() {
var clock = new Stopwatch()..start();
@@ -113,9 +119,11 @@ class ServerCompiler extends AbstractCompiler {
return;
}
- var filename = path.basename(node.uri.path);
- String outputFile = path.join(outputDir, filename);
- new File(outputFile).writeAsStringSync(output);
+ var filepath =
+ resourceOutputPath(node.uri, _entryNode.uri, options.runtimeDir);
+ String outputFile = path.join(outputDir, filepath);
+ var file = new File(outputFile)..createSync(recursive: true);
+ file.writeAsStringSync(output);
Jennifer Messerly 2016/01/29 16:49:49 same comment, it'd be nice to go all in on the cas
vsm 2016/01/29 18:13:51 Done.
}
void _buildResourceFile(ResourceSourceNode node) {

Powered by Google App Engine
This is Rietveld 408576698