refactor(dart/transform): Separate log & zone code
- Move zone-related code out of logger.dart and into zone.dart. - Rename `logger` => `log`. - Add the ability to specify a zone-local `TemplateCompiler`.
This commit is contained in:
@ -1,11 +1,13 @@
|
||||
library angular2.test.transform.deferred_rewriter.all_tests;
|
||||
|
||||
import 'package:barback/barback.dart';
|
||||
import 'package:angular2/src/transform/deferred_rewriter/transformer.dart';
|
||||
import 'package:angular2/src/transform/common/logging.dart' as log;
|
||||
import 'package:dart_style/dart_style.dart';
|
||||
import 'package:guinness/guinness.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
import 'package:angular2/src/transform/common/zone.dart' as zone;
|
||||
import 'package:angular2/src/transform/deferred_rewriter/transformer.dart';
|
||||
|
||||
import '../common/read_file.dart';
|
||||
import '../common/recording_logger.dart';
|
||||
|
||||
@ -35,7 +37,7 @@ void allTests() {
|
||||
|
||||
void _testRewriteDeferredLibraries(String name, String inputPath) {
|
||||
it(name, () {
|
||||
return log.setZoned(new RecordingLogger(), () async {
|
||||
return zone.exec(() async {
|
||||
var inputId = _assetIdForPath(inputPath);
|
||||
var reader = new TestAssetReader();
|
||||
var expectedPath = path.join(
|
||||
@ -50,7 +52,7 @@ void _testRewriteDeferredLibraries(String name, String inputPath) {
|
||||
} else {
|
||||
expect(formatter.format(output)).toEqual(formatter.format(input));
|
||||
}
|
||||
});
|
||||
}, log: new RecordingLogger());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -3,15 +3,16 @@ library angular2.test.transform.directive_metadata_linker.all_tests;
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:angular2/src/transform/common/asset_reader.dart';
|
||||
import 'package:angular2/src/transform/common/logging.dart' as log;
|
||||
import 'package:angular2/src/transform/common/names.dart';
|
||||
import 'package:angular2/src/transform/common/model/import_export_model.pb.dart';
|
||||
import 'package:angular2/src/transform/directive_metadata_linker/ng_meta_linker.dart';
|
||||
import 'package:barback/barback.dart';
|
||||
import 'package:dart_style/dart_style.dart';
|
||||
import 'package:guinness/guinness.dart';
|
||||
|
||||
import 'package:angular2/src/transform/common/asset_reader.dart';
|
||||
import 'package:angular2/src/transform/common/names.dart';
|
||||
import 'package:angular2/src/transform/common/model/import_export_model.pb.dart';
|
||||
import 'package:angular2/src/transform/common/zone.dart' as zone;
|
||||
import 'package:angular2/src/transform/directive_metadata_linker/ng_meta_linker.dart';
|
||||
|
||||
import '../common/ng_meta_helper.dart';
|
||||
import '../common/read_file.dart';
|
||||
import '../common/recording_logger.dart';
|
||||
@ -172,6 +173,6 @@ void allTests() {
|
||||
}
|
||||
|
||||
Future<NgMeta> _testLink(AssetReader reader, AssetId assetId) {
|
||||
return log.setZoned(
|
||||
new RecordingLogger(), () => linkDirectiveMetadata(reader, assetId));
|
||||
return zone.exec(() => linkDirectiveMetadata(reader, assetId),
|
||||
log: new RecordingLogger());
|
||||
}
|
||||
|
@ -2,20 +2,22 @@ library angular2.test.transform.directive_processor.all_tests;
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:angular2/src/core/change_detection/change_detection.dart';
|
||||
import 'package:angular2/src/core/linker/interfaces.dart' show LifecycleHooks;
|
||||
import 'package:angular2/src/core/dom/html_adapter.dart';
|
||||
import 'package:angular2/src/transform/directive_processor/rewriter.dart';
|
||||
import 'package:angular2/src/transform/common/annotation_matcher.dart';
|
||||
import 'package:angular2/src/transform/common/code/ng_deps_code.dart';
|
||||
import 'package:angular2/src/transform/common/asset_reader.dart';
|
||||
import 'package:angular2/src/transform/common/logging.dart' as log;
|
||||
import 'package:angular2/src/transform/common/model/ng_deps_model.pb.dart';
|
||||
import 'package:angular2/src/transform/common/model/reflection_info_model.pb.dart';
|
||||
import 'package:angular2/src/transform/common/ng_meta.dart';
|
||||
import 'package:barback/barback.dart';
|
||||
import 'package:dart_style/dart_style.dart';
|
||||
import 'package:guinness/guinness.dart';
|
||||
|
||||
import 'package:angular2/src/core/change_detection/change_detection.dart';
|
||||
import 'package:angular2/src/core/dom/html_adapter.dart';
|
||||
import 'package:angular2/src/core/linker/interfaces.dart' show LifecycleHooks;
|
||||
import 'package:angular2/src/transform/common/annotation_matcher.dart';
|
||||
import 'package:angular2/src/transform/common/asset_reader.dart';
|
||||
import 'package:angular2/src/transform/common/code/ng_deps_code.dart';
|
||||
import 'package:angular2/src/transform/common/model/ng_deps_model.pb.dart';
|
||||
import 'package:angular2/src/transform/common/model/reflection_info_model.pb.dart';
|
||||
import 'package:angular2/src/transform/common/ng_meta.dart';
|
||||
import 'package:angular2/src/transform/common/zone.dart' as zone;
|
||||
import 'package:angular2/src/transform/directive_processor/rewriter.dart';
|
||||
|
||||
import '../common/read_file.dart';
|
||||
import '../common/recording_logger.dart';
|
||||
|
||||
@ -494,32 +496,31 @@ void allTests() {
|
||||
..prefix = 'dep2');
|
||||
});
|
||||
|
||||
it('should merge `outputs` from the annotation and fields.',
|
||||
() async {
|
||||
it('should merge `outputs` from the annotation and fields.', () async {
|
||||
var model = await _testCreateModel('directives_files/components.dart');
|
||||
expect(model.types['ComponentWithOutputs'].outputs).
|
||||
toEqual({'a': 'a', 'b': 'b', 'c': 'renamed'});
|
||||
expect(model.types['ComponentWithOutputs'].outputs)
|
||||
.toEqual({'a': 'a', 'b': 'b', 'c': 'renamed'});
|
||||
});
|
||||
|
||||
it('should merge `inputs` from the annotation and fields.',
|
||||
() async {
|
||||
it('should merge `inputs` from the annotation and fields.', () async {
|
||||
var model = await _testCreateModel('directives_files/components.dart');
|
||||
expect(model.types['ComponentWithInputs'].inputs).
|
||||
toEqual({'a': 'a', 'b': 'b', 'c': 'renamed'});
|
||||
expect(model.types['ComponentWithInputs'].inputs)
|
||||
.toEqual({'a': 'a', 'b': 'b', 'c': 'renamed'});
|
||||
});
|
||||
|
||||
it('should merge host bindings from the annotation and fields.',
|
||||
() async {
|
||||
it('should merge host bindings from the annotation and fields.', () async {
|
||||
var model = await _testCreateModel('directives_files/components.dart');
|
||||
expect(model.types['ComponentWithHostBindings'].hostProperties).
|
||||
toEqual({'a': 'a', 'b': 'b', 'renamed': 'c'});
|
||||
expect(model.types['ComponentWithHostBindings'].hostProperties)
|
||||
.toEqual({'a': 'a', 'b': 'b', 'renamed': 'c'});
|
||||
});
|
||||
|
||||
it('should merge host listeners from the annotation and fields.',
|
||||
() async {
|
||||
it('should merge host listeners from the annotation and fields.', () async {
|
||||
var model = await _testCreateModel('directives_files/components.dart');
|
||||
expect(model.types['ComponentWithHostListeners'].hostListeners).
|
||||
toEqual({'a': 'onA()', 'b': 'onB()', 'c': 'onC(\$event.target,\$event.target.value)'});
|
||||
expect(model.types['ComponentWithHostListeners'].hostListeners).toEqual({
|
||||
'a': 'onA()',
|
||||
'b': 'onB()',
|
||||
'c': 'onC(\$event.target,\$event.target.value)'
|
||||
});
|
||||
});
|
||||
|
||||
it('should warn if @Component has a `template` and @View is present.',
|
||||
@ -568,7 +569,7 @@ Future<NgMeta> _testCreateModel(String inputPath,
|
||||
AssetReader reader,
|
||||
TransformLogger logger}) {
|
||||
if (logger == null) logger = new RecordingLogger();
|
||||
return log.setZoned(logger, () async {
|
||||
return zone.exec(() async {
|
||||
var inputId = _assetIdForPath(inputPath);
|
||||
if (reader == null) {
|
||||
reader = new TestAssetReader();
|
||||
@ -580,7 +581,7 @@ Future<NgMeta> _testCreateModel(String inputPath,
|
||||
|
||||
var annotationMatcher = new AnnotationMatcher()..addAll(customDescriptors);
|
||||
return createNgMeta(reader, inputId, annotationMatcher);
|
||||
});
|
||||
}, log: logger);
|
||||
}
|
||||
|
||||
AssetId _assetIdForPath(String path) =>
|
||||
|
@ -2,16 +2,17 @@ library angular2.test.transform.inliner_for_test.all_tests;
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:angular2/src/transform/common/annotation_matcher.dart';
|
||||
import 'package:angular2/src/transform/common/asset_reader.dart';
|
||||
import 'package:angular2/src/transform/common/logging.dart' as log;
|
||||
import 'package:angular2/src/transform/common/options.dart';
|
||||
import 'package:angular2/src/transform/inliner_for_test/transformer.dart';
|
||||
import 'package:barback/barback.dart';
|
||||
import 'package:code_transformers/tests.dart';
|
||||
import 'package:guinness/guinness.dart';
|
||||
import 'package:dart_style/dart_style.dart';
|
||||
|
||||
import 'package:angular2/src/transform/common/annotation_matcher.dart';
|
||||
import 'package:angular2/src/transform/common/asset_reader.dart';
|
||||
import 'package:angular2/src/transform/common/options.dart';
|
||||
import 'package:angular2/src/transform/common/zone.dart' as zone;
|
||||
import 'package:angular2/src/transform/inliner_for_test/transformer.dart';
|
||||
|
||||
import '../common/read_file.dart';
|
||||
import '../common/recording_logger.dart';
|
||||
|
||||
@ -118,8 +119,8 @@ void allTests() {
|
||||
}
|
||||
|
||||
Future<String> _testInline(AssetReader reader, AssetId assetId) {
|
||||
return log.setZoned(
|
||||
new RecordingLogger(), () => inline(reader, assetId, annotationMatcher));
|
||||
return zone.exec(() => inline(reader, assetId, annotationMatcher),
|
||||
log: new RecordingLogger());
|
||||
}
|
||||
|
||||
AssetId _assetId(String path) => new AssetId('a', 'inliner_for_test/$path');
|
||||
|
@ -4,15 +4,16 @@ import 'dart:async';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:barback/barback.dart';
|
||||
import 'package:angular2/src/core/change_detection/codegen_name_util.dart'
|
||||
show CONTEXT_ACCESSOR;
|
||||
import 'package:angular2/src/core/dom/html_adapter.dart';
|
||||
import 'package:angular2/src/transform/common/logging.dart' as log;
|
||||
import 'package:angular2/src/transform/template_compiler/generator.dart';
|
||||
import 'package:dart_style/dart_style.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:guinness/guinness.dart';
|
||||
|
||||
import 'package:angular2/src/core/change_detection/codegen_name_util.dart'
|
||||
show CONTEXT_ACCESSOR;
|
||||
import 'package:angular2/src/core/dom/html_adapter.dart';
|
||||
import 'package:angular2/src/transform/template_compiler/generator.dart';
|
||||
import 'package:angular2/src/transform/common/zone.dart' as zone;
|
||||
|
||||
import '../common/compile_directive_metadata/ng_for.ng_meta.dart' as ngMeta;
|
||||
import '../common/ng_meta_helper.dart';
|
||||
import '../common/read_file.dart';
|
||||
@ -76,8 +77,10 @@ void allTests() {
|
||||
|
||||
Future<String> process(AssetId assetId, {List<String> ambientDirectives}) {
|
||||
logger = new RecordingLogger();
|
||||
return log.setZoned(logger, () => processTemplates(reader, assetId,
|
||||
ambientDirectives: ambientDirectives));
|
||||
return zone.exec(
|
||||
() => processTemplates(reader, assetId,
|
||||
ambientDirectives: ambientDirectives),
|
||||
log: logger);
|
||||
}
|
||||
|
||||
// TODO(tbosch): This is just a temporary test that makes sure that the dart
|
||||
@ -357,7 +360,8 @@ void allTests() {
|
||||
barNgMeta.aliases['AMBIENT'] = [barComponentMeta.type.name];
|
||||
updateReader();
|
||||
|
||||
final outputs = await process(fooAssetId, ambientDirectives: ['package:a/bar.dart#AMBIENT']);
|
||||
final outputs = await process(fooAssetId,
|
||||
ambientDirectives: ['package:a/bar.dart#AMBIENT']);
|
||||
final ngDeps = outputs.ngDeps;
|
||||
expect(ngDeps).toBeNotNull();
|
||||
expect(outputs.templatesCode)
|
||||
@ -374,7 +378,8 @@ void allTests() {
|
||||
barNgMeta.types['AMBIENT'] = barComponentMeta;
|
||||
updateReader();
|
||||
|
||||
final outputs = await process(fooAssetId, ambientDirectives: ['package:a/bar.dart#AMBIENT']);
|
||||
final outputs = await process(fooAssetId,
|
||||
ambientDirectives: ['package:a/bar.dart#AMBIENT']);
|
||||
final ngDeps = outputs.ngDeps;
|
||||
expect(ngDeps).toBeNotNull();
|
||||
expect(outputs.templatesCode)
|
||||
@ -388,21 +393,25 @@ void allTests() {
|
||||
expect(ngDeps).toBeNotNull();
|
||||
});
|
||||
|
||||
it('should work when the ambient directives config is not formatted properly.', () async {
|
||||
it('should work when the ambient directives config is not formatted properly.',
|
||||
() async {
|
||||
final outputs = await process(fooAssetId, ambientDirectives: ['INVALID']);
|
||||
final ngDeps = outputs.ngDeps;
|
||||
expect(ngDeps).toBeNotNull();
|
||||
});
|
||||
|
||||
it('should work when the file with ambient directives cannot be found.', () async {
|
||||
final outputs = await process(
|
||||
fooAssetId, ambientDirectives: ['package:a/invalid.dart#AMBIENT']);
|
||||
it('should work when the file with ambient directives cannot be found.',
|
||||
() async {
|
||||
final outputs = await process(fooAssetId,
|
||||
ambientDirectives: ['package:a/invalid.dart#AMBIENT']);
|
||||
final ngDeps = outputs.ngDeps;
|
||||
expect(ngDeps).toBeNotNull();
|
||||
});
|
||||
|
||||
it('should work when the ambient directives token cannot be found.', () async {
|
||||
final outputs = await process(fooAssetId, ambientDirectives: ['package:a/bar.dart#AMBIENT']);
|
||||
it('should work when the ambient directives token cannot be found.',
|
||||
() async {
|
||||
final outputs = await process(fooAssetId,
|
||||
ambientDirectives: ['package:a/bar.dart#AMBIENT']);
|
||||
final ngDeps = outputs.ngDeps;
|
||||
expect(ngDeps).toBeNotNull();
|
||||
});
|
||||
|
Reference in New Issue
Block a user