)]}'
{
  "commit": "fcf4b0f4747457a58f4c9a40293dc39db7f0523d",
  "tree": "53e7d536d85bef345c46096789474cb84f665520",
  "parents": [
    "942fd9b85c9b051a0698e83dc94aa4eabb2a65d1"
  ],
  "author": {
    "name": "Nate Bosch",
    "email": "nbosch@google.com",
    "time": "Mon Dec 20 10:01:43 2021 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Dec 20 10:01:43 2021 -0800"
  },
  "message": "Refactor a callback to async/await (dart-lang/stream_transform#139)\n\nUse a try/finally block over using `whenComplete`. This also allows\r\ncombining the async and sync error handling with a single `catch`\r\ninstead of using `catch` for sync errors and `catchError` for async\r\nerrors.\r\n\r\nSwitch the early return to the shorter case of immediately listening on\r\nthe first stream, and leaving the more complex logic (and more common\r\ncase) with one less level of nesting.\r\n\r\nThis does move the call to `outerSubscription.pause()` to come before\r\nthe all to `currentSubscription.cancel()`, but this ordering should not\r\nbe meaningful even though it can be observed.\r\n\r\nFix a TODO about using `Future.ignore()`.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "53a839488e028f9651726ebabcf83a52f56bf657",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/lib/src/switch.dart",
      "new_id": "1fa07da4f750fa2c307536d1449206528c206b9a",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/lib/src/switch.dart"
    }
  ]
}
