All files / publisher/pages/Releases/actions architectures.ts

100% Statements 7/7
100% Branches 0/0
100% Functions 3/3
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37            6x                           4x   4x 8x       14x   4x              
import {
  GenericReleasesAction,
  ReleasesReduxState,
  Revision,
} from "../../../types/releaseTypes";
 
export const UPDATE_ARCHITECTURES = "UPDATE_ARCHITECTURES";
 
export type UpdateArchitecturesAction = GenericReleasesAction<
  typeof UPDATE_ARCHITECTURES,
  {
    architectures: ReleasesReduxState["architectures"];
  }
>;
 
export type ArchitecturesAction = UpdateArchitecturesAction;
 
export function updateArchitectures(
  revisions: Revision[]
): UpdateArchitecturesAction {
  let archs: string[] = [];
 
  revisions.forEach((revision) => {
    archs = archs.concat(revision.architectures);
  });
 
  // make archs unique and sorted
  archs = archs.filter((item, i, ar) => ar.indexOf(item) === i);
 
  return {
    type: UPDATE_ARCHITECTURES,
    payload: {
      architectures: archs,
    },
  };
}