UNPKG

@gameroom/cli

Version:

A command line tool for Gameroom

31 lines (26 loc) 1 kB
let cosmetic = require('cosmetic'), padString = require('./padString'), actualStringLength = require('./actualStringLength') module.exports = (array, keys) => { let padding = {} // Column header padding if (keys) for (let [index, key] of keys.entries()) padding[index] = actualStringLength(key) for (let row of array) for (let [index, cell] of row.entries()) if (cell !== null && (!padding[index] || actualStringLength(cell) > padding[index])) padding[index] = actualStringLength(cell) if (keys) { let string = '' for (let [index, key] of keys.entries()) { string += padString(key, padding[index]) if (index !== keys.length - 1) string += ' | ' } console.log(cosmetic.underline(string)) } for (let row of array) { let string = '' for (let [index, cell] of row.entries()) { if (cell === null) cell = '' string += padString(cell, padding[index]) if (index !== row.length - 1) string += ' | ' } console.log(string) } }