function getNodesAndTimingByRequestId(nodeTimings) {
  /** @type {Map<string, {node: LH.Gatherer.Simulation.GraphNetworkNode, nodeTiming: LH.Gatherer.Simulation.NodeTiming}>} */
  const requestIdToNode = new Map();

  for (const [node, nodeTiming] of nodeTimings) {
    if (node.type !== 'network') continue;

    requestIdToNode.set(node.request.requestId, {node, nodeTiming});
  }

  return requestIdToNode;
}
Given a simulation's nodeTimings, return an object with the nodes/timing keyed by network URL
@param {LH.Gatherer.Simulation.Result['nodeTimings']} nodeTimings
@return {Map<string, {node: LH.Gatherer.Simulation.GraphNetworkNode, nodeTiming: LH.Gatherer.Simulation.NodeTiming}>}