)]}'
{
  "commit": "8bb79ade621cf97d4d3a6d46ba69ee160f4cf7df",
  "tree": "3ae123908178d24f6d61fcf5affb63a1221aef6e",
  "parents": [
    "ce8d0828facf05bbd638fbca71473319f85810dd"
  ],
  "author": {
    "name": "Nate Bosch",
    "email": "nbosch@google.com",
    "time": "Mon Jan 11 16:36:06 2021 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jan 11 16:36:06 2021 -0800"
  },
  "message": "Add trailing argument to throttle (dart-lang/stream_transform#123)\n\nCloses dart-lang/stream_transform#122\r\n\r\nThe existing rate limit utilities don\u0027t cover the case of wanting to\r\nupdate a UI with some changing data with a limited frequency. In this\r\ncase the goal is to get the \"latest\" event with minimal lag time, while\r\nmaintaining at least a given duration in between events. Add a\r\n`trailing` argument to `throttle` for an operator which will emit\r\nimmediately when possible (unlike `audit`), and does not get starved by a\r\nlong series of frequent events (unlike `debounce`).\r\n\r\nExpand the doc with the same timeline diagrams as used for other\r\noperators.\r\n\r\nSplit the implementation into two methods to avoid extra conditional\r\nchecks and unused variables for the common case of `trailing: false`.\r\nAdd tests for the behavior of emitting the trailing event, suppressing\r\nintermediate events, and keeping the stream open until the final\r\ntrailing even is emitted.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "68f88591204a6f3f855d0846fef6042e6bc4ef9e",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/CHANGELOG.md",
      "new_id": "2bae49782f89bdd3e54024c85d0436e8a465589a",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "d558f61711563942beb09ab31ed485fe5bbddfd3",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/lib/src/rate_limit.dart",
      "new_id": "6a02703fe1b0d84ffa5c9f93c30f232b38e7a5e7",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/lib/src/rate_limit.dart"
    },
    {
      "type": "modify",
      "old_id": "d84fdf47537ce3a92c732af95be5e1e057bf9e98",
      "old_mode": 33188,
      "old_path": "pkgs/stream_transform/test/throttle_test.dart",
      "new_id": "27d9b11bf914fee7a0c89edc5fb6de9d60bcb471",
      "new_mode": 33188,
      "new_path": "pkgs/stream_transform/test/throttle_test.dart"
    }
  ]
}
