Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorForrest L Norvell <forrest@npmjs.com>2014-08-29 09:16:05 +0400
committerForrest L Norvell <forrest@npmjs.com>2014-08-29 09:16:05 +0400
commitbf247edf5429c6b3ec4d4cb798fa0eb0a9c19fc1 (patch)
treedad6102c4ea3a8bec8d629222f7bec92b54f9a4d /node_modules/columnify/index.js
parent4bbe682a6d4eabcd23f892932308c9f228bf4de3 (diff)
columnify@1.2.1
Diffstat (limited to 'node_modules/columnify/index.js')
-rw-r--r--node_modules/columnify/index.js26
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