OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /// Generic utility functions. Stuff that should possibly be in core. | 5 /// Generic utility functions. Stuff that should possibly be in core. |
6 import 'dart:async'; | 6 import 'dart:async'; |
7 import "dart:convert"; | 7 import "dart:convert"; |
8 import 'dart:io'; | 8 import 'dart:io'; |
9 | 9 |
10 import "package:crypto/crypto.dart"; | 10 import "package:crypto/crypto.dart"; |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 }, onError: (error, [stackTrace]) { | 514 }, onError: (error, [stackTrace]) { |
515 // If the error came after values, it's OK. | 515 // If the error came after values, it's OK. |
516 if (completer.isCompleted) { | 516 if (completer.isCompleted) { |
517 controller.addError(error, stackTrace); | 517 controller.addError(error, stackTrace); |
518 return; | 518 return; |
519 } | 519 } |
520 | 520 |
521 // Otherwise, the error came first and the stream is invalid. | 521 // Otherwise, the error came first and the stream is invalid. |
522 completer.completeError(error, stackTrace); | 522 completer.completeError(error, stackTrace); |
523 | 523 |
524 // We don't be returning the stream at all in this case, so unsubscribe | 524 // We won't be returning the stream at all in this case, so unsubscribe |
525 // and swallow the error. | 525 // and swallow the error. |
526 subscription.cancel(); | 526 subscription.cancel(); |
527 }, onDone: () { | 527 }, onDone: () { |
528 // It closed with no errors, so the stream is valid. | 528 // It closed with no errors, so the stream is valid. |
529 if (!completer.isCompleted) completer.complete(controller.stream); | 529 if (!completer.isCompleted) completer.complete(controller.stream); |
530 controller.close(); | 530 controller.close(); |
531 }); | 531 }); |
532 | 532 |
533 return completer.future; | 533 return completer.future; |
534 } | 534 } |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
940 } else { | 940 } else { |
941 throw new ApplicationException(message); | 941 throw new ApplicationException(message); |
942 } | 942 } |
943 } | 943 } |
944 | 944 |
945 /// Throw a [DataException] with [message] to indicate that the command has | 945 /// Throw a [DataException] with [message] to indicate that the command has |
946 /// failed because of invalid input data. | 946 /// failed because of invalid input data. |
947 /// | 947 /// |
948 /// This will report the error and cause pub to exit with [exit_codes.DATA]. | 948 /// This will report the error and cause pub to exit with [exit_codes.DATA]. |
949 void dataError(String message) => throw new DataException(message); | 949 void dataError(String message) => throw new DataException(message); |
OLD | NEW |