2015-04-13 16:54:09 -07:00
|
|
|
library angular2.transform.common.options_reader;
|
2015-04-09 17:49:11 -07:00
|
|
|
|
|
|
|
import 'package:barback/barback.dart';
|
2015-04-17 11:12:35 -07:00
|
|
|
import 'mirror_mode.dart';
|
2015-04-09 17:49:11 -07:00
|
|
|
import 'options.dart';
|
|
|
|
|
|
|
|
TransformerOptions parseBarbackSettings(BarbackSettings settings) {
|
|
|
|
var config = settings.configuration;
|
|
|
|
var entryPoints = _readFileList(config, ENTRY_POINT_PARAM);
|
|
|
|
var reflectionEntryPoints =
|
|
|
|
_readFileList(config, REFLECTION_ENTRY_POINT_PARAM);
|
2015-04-17 11:12:35 -07:00
|
|
|
var initReflector = !config.containsKey('init_reflector') ||
|
|
|
|
config['init_reflector'] != false;
|
|
|
|
String mirrorModeVal =
|
|
|
|
config.containsKey('mirror_mode') ? config['mirror_mode'] : '';
|
|
|
|
var mirrorMode = MirrorMode.none;
|
|
|
|
switch (mirrorModeVal) {
|
|
|
|
case 'debug':
|
|
|
|
mirrorMode = MirrorMode.debug;
|
|
|
|
break;
|
|
|
|
case 'verbose':
|
|
|
|
mirrorMode = MirrorMode.verbose;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
mirrorMode = MirrorMode.none;
|
|
|
|
break;
|
|
|
|
}
|
2015-04-09 17:49:11 -07:00
|
|
|
return new TransformerOptions(entryPoints,
|
|
|
|
reflectionEntryPoints: reflectionEntryPoints,
|
2015-04-17 11:12:35 -07:00
|
|
|
modeName: settings.mode.name,
|
|
|
|
mirrorMode: mirrorMode,
|
|
|
|
initReflector: initReflector);
|
2015-04-09 17:49:11 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
/// Cribbed from the polymer project.
|
2015-04-17 13:01:07 -07:00
|
|
|
/// {@link https://github.com/dart-lang/polymer-dart}
|
2015-04-09 17:49:11 -07:00
|
|
|
List<String> _readFileList(Map config, String paramName) {
|
|
|
|
var value = config[paramName];
|
|
|
|
if (value == null) return null;
|
|
|
|
var files = [];
|
|
|
|
bool error = false;
|
|
|
|
if (value is List) {
|
|
|
|
files = value;
|
|
|
|
error = value.any((e) => e is! String);
|
|
|
|
} else if (value is String) {
|
|
|
|
files = [value];
|
|
|
|
error = false;
|
|
|
|
} else {
|
|
|
|
error = true;
|
|
|
|
}
|
|
|
|
if (error) {
|
|
|
|
print('Invalid value for "$paramName" in the Angular 2 transformer.');
|
|
|
|
}
|
|
|
|
return files;
|
|
|
|
}
|