| Index: lib/src/options.dart
|
| diff --git a/lib/src/options.dart b/lib/src/options.dart
|
| index 4abc5a0c822c03faa96002ba79accabdcec9ab99..e04857aae0fef8475f08308ee3324980d6ca5b9f 100644
|
| --- a/lib/src/options.dart
|
| +++ b/lib/src/options.dart
|
| @@ -236,6 +236,9 @@ class CompilerOptions implements RulesOptions, ResolverOptions, JSCodeOptions {
|
| /// package (if we can infer where that is located).
|
| final String runtimeDir;
|
|
|
| + /// Custom URI mappings, such as "dart:foo" -> "path/to/foo.dart"
|
| + final Map<String, String> customUrlMappings;
|
| +
|
| CompilerOptions({this.allowConstCasts: true, this.checkSdk: false,
|
| this.dumpInfo: false, this.dumpInfoFile, this.dumpSrcDir,
|
| this.forceCompile: false, this.formatOutput: false,
|
| @@ -254,12 +257,14 @@ class CompilerOptions implements RulesOptions, ResolverOptions, JSCodeOptions {
|
| this.emitSourceMaps: true, this.entryPointFile: null,
|
| this.serverMode: false, this.useImplicitHtml: false,
|
| this.enableHashing: false, this.host: 'localhost', this.port: 8080,
|
| - this.runtimeDir});
|
| + this.runtimeDir, this.customUrlMappings: const {}});
|
| }
|
|
|
| /// Parses options from the command-line
|
| CompilerOptions parseOptions(List<String> argv) {
|
| ArgResults args = argParser.parse(argv);
|
| + bool showUsage = args['help'];
|
| +
|
| var serverMode = args['server'];
|
| var enableHashing = args['hashing'];
|
| if (enableHashing == null) {
|
| @@ -289,6 +294,16 @@ CompilerOptions parseOptions(List<String> argv) {
|
| var dumpInfo = args['dump-info'];
|
| if (dumpInfo == null) dumpInfo = serverMode;
|
|
|
| + var customUrlMappings = <String, String>{};
|
| + for (var mapping in args['url-mapping']) {
|
| + var splitMapping = mapping.split(',');
|
| + if (splitMapping.length != 2) {
|
| + showUsage = true;
|
| + continue;
|
| + }
|
| + customUrlMappings[splitMapping[0]] = splitMapping[1];
|
| + }
|
| +
|
| var entryPointFile = args.rest.length == 0 ? null : args.rest.first;
|
|
|
| return new CompilerOptions(
|
| @@ -306,6 +321,7 @@ CompilerOptions parseOptions(List<String> argv) {
|
| covariantGenerics: args['covariant-generics'],
|
| relaxedCasts: args['relaxed-casts'],
|
| useColors: useColors,
|
| + customUrlMappings: customUrlMappings,
|
| useMultiPackage: args['use-multi-package'],
|
| packageRoot: args['package-root'],
|
| packagePaths: args['package-paths'].split(','),
|
| @@ -319,7 +335,7 @@ CompilerOptions parseOptions(List<String> argv) {
|
| onlyInferConstsAndFinalFields: args['infer-only-finals'],
|
| nonnullableTypes: optionsToList(args['nonnullable'],
|
| defaultValue: TypeOptions.NONNULLABLE_TYPES),
|
| - help: args['help'],
|
| + help: showUsage,
|
| useMockSdk: args['mock-sdk'],
|
| dartSdkPath: sdkPath,
|
| logLevel: logLevel,
|
| @@ -380,6 +396,11 @@ final ArgParser argParser = new ArgParser()
|
| abbr: 'p',
|
| help: 'Package root to resolve "package:" imports',
|
| defaultsTo: 'packages/')
|
| + ..addOption('url-mapping',
|
| + help: '--url-mapping=libraryUri,/path/to/library.dart uses library.dart\n'
|
| + 'as the source for an import of of "libraryUri".',
|
| + allowMultiple: true,
|
| + splitCommas: false)
|
| ..addFlag('use-multi-package',
|
| help: 'Whether to use the multi-package resolver for "package:" imports',
|
| defaultsTo: false)
|
|
|