
Add a transformer for `di` which generates `.ng_deps.dart` files for all `.dart` files it is run on. These `.ng_deps.dart` files register metadata for any `@Injectable` classes. Fix unit tests for changes introduced by the di transformer. When using `pub (build|serve) --mode=ngstatic`, we will also generate getters and setters, parse templates, and remove import of `dart:mirrors` in the Angular transform. Because this is still relatively immature, we use the mode to keep it opt-in for now. Closes #700
27 lines
813 B
Dart
27 lines
813 B
Dart
library angular2.src.transform.di_transformer;
|
|
|
|
import 'package:barback/barback.dart';
|
|
import 'package:dart_style/dart_style.dart';
|
|
|
|
import 'directive_linker/transformer.dart';
|
|
import 'directive_processor/transformer.dart';
|
|
import 'bind_generator/transformer.dart';
|
|
import 'reflection_remover/transformer.dart';
|
|
import 'common/formatter.dart' as formatter;
|
|
import 'common/options.dart';
|
|
|
|
export 'common/options.dart';
|
|
|
|
/// Removes the mirror-based initialization logic and replaces it with static
|
|
/// logic.
|
|
class DiTransformerGroup extends TransformerGroup {
|
|
DiTransformerGroup()
|
|
: super([[new DirectiveProcessor(null)], [new DirectiveLinker()]]) {
|
|
formatter.init(new DartFormatter());
|
|
}
|
|
|
|
factory DiTransformerGroup.asPlugin(BarbackSettings settings) {
|
|
return new DiTransformerGroup();
|
|
}
|
|
}
|