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

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: Address comments 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
« no previous file with comments | « lib/src/server/dependency_graph.dart ('k') | lib/src/utils.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/src/server/server.dart
diff --git a/lib/src/server/server.dart b/lib/src/server/server.dart
index a53fc0920fcd650cf7acae63fb70be9c2a2e0702..89a5ab608c4092133d91047b4cc75c481d9a3af6 100644
--- a/lib/src/server/server.dart
+++ b/lib/src/server/server.dart
@@ -36,7 +36,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;
@@ -45,22 +45,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));
}
@@ -68,8 +76,6 @@ class ServerCompiler extends AbstractCompiler {
_hashing = options.enableHashing && _generators.length == 1;
}
- Uri get entryPointUri => _entryNode.uri;
-
CheckerResults run() {
var clock = new Stopwatch()..start();
@@ -112,9 +118,12 @@ 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);
+ new File(outputFile)
+ ..createSync(recursive: true)
+ ..writeAsStringSync(output);
}
void _buildResourceFile(ResourceSourceNode node) {
« no previous file with comments | « lib/src/server/dependency_graph.dart ('k') | lib/src/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698