Skip to content

Commit 32e4f40

Browse files
committed
Fixes #196 - Enable resources to be served
[email protected] Review URL: https://codereview.chromium.org/1152573003
1 parent 980c090 commit 32e4f40

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

pkg/dev_compiler/lib/src/dependency_graph.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ class SourceGraph {
7676
}
7777
});
7878
}
79+
80+
List<String> get resources => _options.resources;
7981
}
8082

8183
/// A node in the import graph representing a source file.
@@ -198,6 +200,9 @@ class HtmlSourceNode extends SourceNode {
198200
}
199201

200202
var newResources = new Set<ResourceSourceNode>();
203+
for (var resource in graph.resources) {
204+
newResources.add(graph.nodeFromUri(uri.resolve(resource)));
205+
}
201206
for (var tag in document.querySelectorAll('link[rel="stylesheet"]')) {
202207
newResources
203208
.add(graph.nodeFromUri(uri.resolve(tag.attributes['href'])));

pkg/dev_compiler/lib/src/options.dart

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ class ResolverOptions {
2626
/// List of paths used for the multi-package resolver.
2727
final List<String> packagePaths;
2828

29+
/// List of additional non-Dart resources to resolve and serve.
30+
final List<String> resources;
31+
2932
/// Whether to infer return types and field types from overriden members.
3033
final bool inferFromOverrides;
3134
static const inferFromOverridesDefault = true;
@@ -60,7 +63,7 @@ class ResolverOptions {
6063
static const String implicitHtmlFile = 'index.html';
6164

6265
ResolverOptions({this.useMultiPackage: false, this.packageRoot: 'packages/',
63-
this.packagePaths: const <String>[],
66+
this.packagePaths: const <String>[], this.resources: const <String>[],
6467
this.inferFromOverrides: inferFromOverridesDefault,
6568
this.inferTransitively: inferTransitivelyDefault,
6669
this.onlyInferConstsAndFinalFields: onlyInferConstAndFinalFieldsDefault,
@@ -192,6 +195,10 @@ class CompilerOptions implements RulesOptions, ResolverOptions, JSCodeOptions {
192195
@override
193196
final List<String> packagePaths;
194197

198+
/// List of additional non-Dart resources to resolve and serve.
199+
@override
200+
final List<String> resources;
201+
195202
/// Whether to infer types downwards from local context
196203
@override
197204
final bool inferDownwards;
@@ -239,7 +246,7 @@ class CompilerOptions implements RulesOptions, ResolverOptions, JSCodeOptions {
239246
this.outputDart: false, this.useColors: true,
240247
this.covariantGenerics: true, this.relaxedCasts: true,
241248
this.useMultiPackage: false, this.packageRoot: 'packages/',
242-
this.packagePaths: const <String>[],
249+
this.packagePaths: const <String>[], this.resources: const <String>[],
243250
this.inferDownwards: RulesOptions.inferDownwardsDefault,
244251
this.inferFromOverrides: ResolverOptions.inferFromOverridesDefault,
245252
this.inferTransitively: ResolverOptions.inferTransitivelyDefault,
@@ -304,6 +311,7 @@ CompilerOptions parseOptions(List<String> argv) {
304311
useMultiPackage: args['use-multi-package'],
305312
packageRoot: args['package-root'],
306313
packagePaths: args['package-paths'].split(','),
314+
resources: args['resources'].split(','),
307315
inferDownwards: args['infer-downwards'],
308316
inferFromOverrides: args['infer-from-overrides'],
309317
inferTransitively: args['infer-transitively'],
@@ -377,6 +385,8 @@ final ArgParser argParser = new ArgParser()
377385
..addOption('package-paths',
378386
help: 'if using the multi-package resolver, the list of directories to\n'
379387
'look for packages in.', defaultsTo: '')
388+
..addOption('resources',
389+
help: 'Additional resources to serve', defaultsTo: '')
380390
..addFlag('source-maps',
381391
help: 'Whether to emit source map files', defaultsTo: true)
382392
..addOption('runtime-dir',

0 commit comments

Comments
 (0)