diff options
author | Forrest L Norvell <forrest@npmjs.com> | 2014-08-29 09:16:05 +0400 |
---|---|---|
committer | Forrest L Norvell <forrest@npmjs.com> | 2014-08-29 09:16:05 +0400 |
commit | bf247edf5429c6b3ec4d4cb798fa0eb0a9c19fc1 (patch) | |
tree | dad6102c4ea3a8bec8d629222f7bec92b54f9a4d /node_modules/columnify/index.js | |
parent | 4bbe682a6d4eabcd23f892932308c9f228bf4de3 (diff) |
columnify@1.2.1
Diffstat (limited to 'node_modules/columnify/index.js')
-rw-r--r-- | node_modules/columnify/index.js | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/node_modules/columnify/index.js b/node_modules/columnify/index.js index 63257dcec..c44b8ca8f 100644 --- a/node_modules/columnify/index.js +++ b/node_modules/columnify/index.js @@ -3,6 +3,7 @@ var wcwidth = require('./width') var utils = require('./utils') var padRight = utils.padRight +var padCenter = utils.padCenter var padLeft = utils.padLeft var splitIntoLines = utils.splitIntoLines var splitLongWords = utils.splitLongWords @@ -15,6 +16,8 @@ var DEFAULTS = { truncate: false, truncateMarker: '…', preserveNewLines: false, + paddingChr: ' ', + showHeaders: true, headingTransform: function(key) { return key.toUpperCase() }, @@ -40,6 +43,7 @@ module.exports = function(items, options) { options.spacing = options.spacing || '\n' // probably useless options.preserveNewLines = !!options.preserveNewLines + options.showHeaders = !!options.showHeaders; options.columns = options.columns || options.include // alias include/columns, prefer columns if supplied var columnNames = options.columns || [] // optional user-supplied columns to include @@ -99,12 +103,13 @@ module.exports = function(items, options) { // add headers var headers = {} - columnNames.forEach(function(columnName) { - var column = columns[columnName] - headers[columnName] = column.headingTransform(columnName) - }) - items.unshift(headers) - + if(options.showHeaders) { + columnNames.forEach(function(columnName) { + var column = columns[columnName] + headers[columnName] = column.headingTransform(columnName) + }) + items.unshift(headers) + } // get actual max-width between min & max // based on length of data in columns columnNames.forEach(function(columnName) { @@ -156,7 +161,7 @@ module.exports = function(items, options) { }) - var rows = createRows(items, columns, columnNames) // merge lines into rows + var rows = createRows(items, columns, columnNames, options.paddingChr) // merge lines into rows // conceive output return rows.reduce(function(output, row) { return output.concat(row.reduce(function(rowOut, line) { @@ -176,7 +181,7 @@ module.exports = function(items, options) { * @return Array items wrapped in arrays, corresponding to lines */ -function createRows(items, columns, columnNames) { +function createRows(items, columns, columnNames, paddingChr) { return items.map(function(item) { var row = [] var numLines = 0 @@ -189,8 +194,9 @@ function createRows(items, columns, columnNames) { columnNames.forEach(function(columnName) { var column = columns[columnName] var val = item[columnName][i] || '' // || '' ensures empty columns get padded - if (column.align == 'right') row[i].push(padLeft(val, column.width)) - else row[i].push(padRight(val, column.width)) + if (column.align == 'right') row[i].push(padLeft(val, column.width, paddingChr)) + else if (column.align == 'center') row[i].push(padCenter(val, column.width, paddingChr)) + else row[i].push(padRight(val, column.width, paddingChr)) }) } return row |