function mergedMessagesOfError()

in packages/flow-dev-tools/src/flowResult.js [131:154]


function mergedMessagesOfError(error: FlowError): Array<FlowMessage> {
  const {level, kind, message, operation, trace, extra} = error;
  let mainLoc = mainLocOfError(error);
  let messages = [].concat(
    getHeader(mainLoc, kind, level),
    getOpReason(operation),
    message,
    getExtraMessages(extra),
    getTraceReasons(trace),
  );
  const mainFile = (mainLoc && mainLoc.source) || '[No file]';
  // Merge comments into blames
  return messages.reduce((acc, message) => {
    const {descr, loc, type} = message;
    if (loc != null || acc.length == 0 || type == 'Blame') {
      acc.push(message);
    } else if (descr != 'Error:') {
      const prev = acc[acc.length - 1];
      prev.descr =
        prev.descr == '' ? descr : format('%s. %s', prev.descr, descr);
    }
    return acc;
  }, []);
}