| OLD | NEW |
| 1 | 1 |
| 2 library which.src.util; | 2 library which.src.util; |
| 3 | 3 |
| 4 import 'dart:async'; | 4 import 'dart:async'; |
| 5 | 5 |
| 6 /// Transparently call `firstWhere` on a [Stream] or [Iterable]. | 6 /// Transparently call `firstWhere` on a [Stream] or [Iterable]. |
| 7 // TODO: Remove once https://dartbug.com/ is fixed. | 7 // TODO: Remove once https://dartbug.com/ is fixed. |
| 8 firstWhere(sequence, test, { orElse() }) => sequence is Iterable ? | 8 firstWhere(sequence, test, { orElse() }) => sequence is Iterable ? |
| 9 sequence.firstWhere(test, orElse: orElse) : | 9 sequence.firstWhere(test, orElse: orElse) : |
| 10 _streamFirstWhere(sequence, test, orElse: orElse); | 10 _streamFirstWhere(sequence, test, orElse: orElse); |
| 11 | 11 |
| 12 Future _streamFirstWhere(Stream stream, test(item), { orElse() }) { | 12 Future _streamFirstWhere(Stream stream, test(item), { orElse() }) { |
| 13 var pairs = stream.asyncMap((item) => test(item).then((result) => [item, resul
t])); | 13 var pairs = stream.asyncMap((item) => test(item).then((result) => [item, resul
t])); |
| 14 return pairs.firstWhere((pair) => pair.last, defaultValue: () => [orElse(), nu
ll]).then((pair) => pair.first); | 14 return pairs.firstWhere((pair) => pair.last, defaultValue: () => [orElse(), nu
ll]).then((pair) => pair.first); |
| 15 } | 15 } |
| 16 | 16 |
| 17 /// The identity function simply returns its argument ([x]). | 17 /// The identity function simply returns its argument ([x]). |
| 18 identity(x) => x; | 18 identity(x) => x; |
| OLD | NEW |