Skip to content

Commit bba8499

Browse files
author
Tim Blasi
committed
fix(dart/transform): Gracefully handle log calls before init
- Lazily create and use a logger that prints instead of `throw`ing. - Use this logger in unit tests.
1 parent cac74c7 commit bba8499

4 files changed

Lines changed: 31 additions & 28 deletions

File tree

modules/angular2/src/transform/common/logging.dart

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,37 @@ void setLogger(BuildLogger logger) {
1818
/// The logger the transformer should use for messaging.
1919
BuildLogger get logger {
2020
if (_logger == null) {
21-
throw new StateError('Logger never initialized.');
21+
_logger = new PrintLogger();
2222
}
2323
return _logger;
2424
}
25+
26+
class PrintLogger implements BuildLogger {
27+
void _printWithPrefix(prefix, msg) => print('$prefix: $msg');
28+
void info(msg, {AssetId asset, SourceSpan span}) =>
29+
_printWithPrefix('INFO', msg);
30+
void fine(msg, {AssetId asset, SourceSpan span}) =>
31+
_printWithPrefix('FINE', msg);
32+
void warning(msg, {AssetId asset, SourceSpan span}) =>
33+
_printWithPrefix('WARN', msg);
34+
void error(msg, {AssetId asset, SourceSpan span}) {
35+
throw new PrintLoggerError(msg, asset, span);
36+
}
37+
Future writeOutput() => null;
38+
Future addLogFilesFromAsset(AssetId id, [int nextNumber = 1]) => null;
39+
}
40+
41+
class PrintLoggerError extends Error {
42+
final String message;
43+
final AssetId asset;
44+
final SourceSpan span;
45+
46+
PrintLoggerError(message, asset, span);
47+
48+
@override
49+
String toString() {
50+
return 'Message: ${Error.safeToString(message)}, '
51+
'Asset: ${Error.safeToString(asset)}, '
52+
'Span: ${Error.safeToString(span)}.';
53+
}
54+
}

modules/angular2/test/transform/common/logger.dart

Lines changed: 0 additions & 23 deletions
This file was deleted.

modules/angular2/test/transform/directive_linker/all_tests.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ import 'package:path/path.dart' as path;
1010
import 'package:guinness/guinness.dart';
1111
import 'package:unittest/vm_config.dart';
1212

13-
import '../common/logger.dart';
1413
import '../common/read_file.dart';
1514

1615
var formatter = new DartFormatter();
1716

1817
void allTests() {
1918
var reader = new TestAssetReader();
20-
setLogger(new NullLogger());
2119

2220
it('should ensure that dependencies are property chained.', () async {
2321
for (var inputPath in [

modules/angular2/test/transform/template_compiler/all_tests.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,13 @@ import 'package:angular2/src/transform/template_compiler/generator.dart';
99
import 'package:dart_style/dart_style.dart';
1010
import 'package:guinness/guinness.dart';
1111

12-
import '../common/logger.dart';
1312
import '../common/read_file.dart';
1413

1514
var formatter = new DartFormatter();
1615

1716
void allTests() {
1817
Html5LibDomAdapter.makeCurrent();
1918
AssetReader reader = new TestAssetReader();
20-
setLogger(new NullLogger());
2119

2220
it('should parse simple expressions in inline templates.', () async {
2321
var inputPath =

0 commit comments

Comments
 (0)