message: Cast non-strings to strings for table formatter
diff: @@ -6,6 +6,27 @@ import stripAnsi from 'strip-ansi';
  import table from 'text-table';
  import type { FormatData } from '../types/Format';
  +// Cast all non-string values to strings in a 2-level nested array
  +const castNonStringsToStrings = R.map(
  + R.map(
  + R.ifElse(
  + // If the value is a string...
  + R.is(String),
  + // ...just return the value...
  + R.identity,
  + // ...otherwise cast it.
  + String,
  + ),
  + ),
  +);
  +
  +const colorHeadings = R.over(
  + // Modify the heading row...
  + R.lensIndex(0),
  + // ...to be a middle gray color
  + R.map(chalk.hex('#848484')),
  +);
  +
  const showSingleDataRowHeadingsOnLeft = R.ifElse(
  // If the length of the data is exactly 2 (one data row + one heading row)...
  R.compose(
  @@ -18,18 +39,12 @@ const showSingleDataRowHeadingsOnLeft = R.ifElse(
  R.identity,
  );
  -const colorHeadings = R.over(
  - // Modify the heading row...
  - R.lensIndex(0),
  - // ...to be a middle gray color
  - R.map(chalk.hex('#848484')),
  -);
  -
  export default function formatAsTable(data: FormatData) {
  return table(
  R.compose(
  showSingleDataRowHeadingsOnLeft,
  colorHeadings,
  + castNonStringsToStrings,
  )(data),
  {
  // Calculate string length correctly for the columns
  