message: Cleanup utils
  Drop emptyElement
  Use for-of in groupBy
  Drop Infinity check
diff: @@ -12,18 +12,14 @@ export const safely = async fn => fn();
  export const getUsername = () => select('meta[name="user-login"]').getAttribute('content');
  -export const groupBy = (array, grouper) => array.reduce((map, item) => {
  +export const groupBy = (iterable, grouper) => {
  + const map = {};
  + for (const item of iterable) {
  const key = grouper(item);
  map[key] = map[key] || [];
  map[key].push(item);
  - return map;
  -}, {});
  -
  -export const emptyElement = element => {
  - // https://stackoverflow.com/a/3955238/288906
  - while (element.firstChild) {
  - element.firstChild.remove();
  }
  + return map;
  };
  /**
  @@ -67,7 +63,7 @@ export const flatZip = (table, limit = Infinity) => {
  for (const row of table) {
  if (row[col]) {
  zipped.push(row[col]);
  - if (limit !== Infinity && zipped.length === limit) {
  + if (zipped.length === limit) {
  return zipped;
  }
  }
  