@gameroom/cli
Version:
A command line tool for Gameroom
31 lines (26 loc) • 1 kB
JavaScript
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)
}
}