alignTableData.js.flow 503 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
import stringWidth from 'string-width';
import alignString from './alignString';

/**
 * @param {table~row[]} rows
 * @param {Object} config
 * @returns {table~row[]}
 */
export default (rows, config) => {
  return rows.map((cells) => {
    return cells.map((value, index1) => {
      const column = config.columns[index1];

      if (stringWidth(value) === column.width) {
        return value;
      } else {
        return alignString(value, column.width, column.alignment);
      }
    });
  });
};