feat(dart/transform): Avoid `print` in transformer code.
Replace direct uses of `print` in the transformer with explicit uses of stderr. Add a few @override annotations for clarification of other `print` implementations. Clarify error message on incorrect custom_annotations value. Closes #7855
This commit is contained in:
parent
4902244cce
commit
e310bee9e2
|
@ -1,6 +1,7 @@
|
||||||
library angular2.transform.common.async_string_writer;
|
library angular2.transform.common.async_string_writer;
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:analyzer/src/generated/java_core.dart';
|
import 'package:analyzer/src/generated/java_core.dart';
|
||||||
|
|
||||||
/// [PrintWriter] implementation that allows asynchronous printing via
|
/// [PrintWriter] implementation that allows asynchronous printing via
|
||||||
|
@ -18,6 +19,7 @@ class AsyncStringWriter extends PrintWriter {
|
||||||
|
|
||||||
AsyncStringWriter([Object content = ""]) : this._(new StringBuffer(content));
|
AsyncStringWriter([Object content = ""]) : this._(new StringBuffer(content));
|
||||||
|
|
||||||
|
@override
|
||||||
void print(x) {
|
void print(x) {
|
||||||
_curr.write(x);
|
_curr.write(x);
|
||||||
}
|
}
|
||||||
|
@ -54,6 +56,7 @@ class AsyncStringWriter extends PrintWriter {
|
||||||
}).whenComplete(_semaphoreDecrementAndCleanup);
|
}).whenComplete(_semaphoreDecrementAndCleanup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
String toString() => _bufs.map((buf) => '$buf').join('(async gap)');
|
String toString() => _bufs.map((buf) => '$buf').join('(async gap)');
|
||||||
|
|
||||||
void _semaphoreIncrement() {
|
void _semaphoreIncrement() {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
library angular2.src.transform.common.logging;
|
library angular2.src.transform.common.logging;
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:io' show stderr;
|
||||||
|
|
||||||
import 'package:barback/barback.dart';
|
import 'package:barback/barback.dart';
|
||||||
import 'package:source_span/source_span.dart';
|
import 'package:source_span/source_span.dart';
|
||||||
|
@ -49,12 +50,16 @@ void _logElapsed(Stopwatch timer, String operationName, AssetId assetId) {
|
||||||
log.fine(buf.toString(), asset: assetId);
|
log.fine(buf.toString(), asset: assetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Prints logged messages to the console.
|
/// Writes logged messages to the provided [StringSink].
|
||||||
///
|
///
|
||||||
/// A simple implementation of [TransformLogger] that prints messages to the
|
/// A simple implementation of [TransformLogger] that writes messages to a
|
||||||
/// console and discards `asset` and `span` information.
|
/// [StringSink] and discards `asset` and `span` information.
|
||||||
class PrintLogger implements TransformLogger {
|
class SinkLogger implements TransformLogger {
|
||||||
void _printWithPrefix(prefix, msg) => print('$prefix: $msg');
|
final StringSink _sink;
|
||||||
|
|
||||||
|
SinkLogger(this._sink);
|
||||||
|
|
||||||
|
void _printWithPrefix(prefix, msg) => _sink.writeln('$prefix: $msg');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void info(msg, {AssetId asset, SourceSpan span}) =>
|
void info(msg, {AssetId asset, SourceSpan span}) =>
|
||||||
|
@ -74,6 +79,14 @@ class PrintLogger implements TransformLogger {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Prints logged messages to stderr.
|
||||||
|
///
|
||||||
|
/// A simple implementation of [TransformLogger] that prints messages to
|
||||||
|
/// [stderr] and discards `asset` and `span` information.
|
||||||
|
class PrintLogger extends SinkLogger {
|
||||||
|
PrintLogger() : super(stderr);
|
||||||
|
}
|
||||||
|
|
||||||
class PrintLoggerError extends Error {
|
class PrintLoggerError extends Error {
|
||||||
final String message;
|
final String message;
|
||||||
final AssetId asset;
|
final AssetId asset;
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
library angular2.transform.common.options_reader;
|
library angular2.transform.common.options_reader;
|
||||||
|
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:barback/barback.dart';
|
import 'package:barback/barback.dart';
|
||||||
|
|
||||||
import 'annotation_matcher.dart';
|
import 'annotation_matcher.dart';
|
||||||
import 'mirror_mode.dart';
|
import 'mirror_mode.dart';
|
||||||
import 'options.dart';
|
import 'options.dart';
|
||||||
import './url_resolver.dart';
|
import './url_resolver.dart';
|
||||||
|
|
||||||
TransformerOptions parseBarbackSettings(BarbackSettings settings) {
|
TransformerOptions parseBarbackSettings(BarbackSettings settings) {
|
||||||
var config = settings.configuration;
|
var config = settings.configuration;
|
||||||
var entryPoints = _readStringList(config, ENTRY_POINT_PARAM);
|
var entryPoints = _readStringList(config, ENTRY_POINT_PARAM);
|
||||||
var initReflector =
|
var initReflector =
|
||||||
|
@ -79,7 +82,8 @@ List<String> _readStringList(Map config, String paramName) {
|
||||||
error = true;
|
error = true;
|
||||||
}
|
}
|
||||||
if (error) {
|
if (error) {
|
||||||
print('Invalid value for "$paramName" in the Angular 2 transformer.');
|
stderr.writeln(
|
||||||
|
'Invalid value for "$paramName" in the Angular 2 transformer.');
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -111,7 +115,7 @@ List<ClassDescriptor> _readCustomAnnotations(Map config) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (error) {
|
if (error) {
|
||||||
print(CUSTOM_ANNOTATIONS_ERROR);
|
stderr.writeln(CUSTOM_ANNOTATIONS_ERROR);
|
||||||
}
|
}
|
||||||
return descriptors;
|
return descriptors;
|
||||||
}
|
}
|
||||||
|
@ -121,7 +125,7 @@ const CUSTOM_ANNOTATIONS_ERROR = '''
|
||||||
Expected something that looks like the following:
|
Expected something that looks like the following:
|
||||||
|
|
||||||
transformers:
|
transformers:
|
||||||
- angular2:
|
- angular2[/transform/codegen]:
|
||||||
custom_annotations:
|
custom_annotations:
|
||||||
- name: MyAnnotation
|
- name: MyAnnotation
|
||||||
import: 'package:my_package/my_annotation.dart'
|
import: 'package:my_package/my_annotation.dart'
|
||||||
|
|
Loading…
Reference in New Issue