/
snap
/
node
/
11782
/
lib
/
node_modules
/
npm
/
node_modules
/
cli-columns
/
/snap/node/11782/lib/node_modules/npm/node_modules/cli-columns
mkdir
upload
Name
Size
Mode
Actions
color.js
403
0644
edit
dl
rm
index.js
1627
0644
edit
dl
rm
license
1122
0644
edit
dl
rm
package.json
1054
0644
edit
dl
rm
test.js
2208
0644
edit
dl
rm
Edit:
/snap/node/11782/lib/node_modules/npm/node_modules/cli-columns/index.js
(1627B)
'use strict'; const stringWidth = require('string-width'); const stripAnsi = require('strip-ansi'); const concat = Array.prototype.concat; const defaults = { character: ' ', newline: '\n', padding: 2, sort: true, width: 0, }; function byPlainText(a, b) { const plainA = stripAnsi(a); const plainB = stripAnsi(b); if (plainA === plainB) { return 0; } if (plainA > plainB) { return 1; } return -1; } function makeArray() { return []; } function makeList(count) { return Array.apply(null, Array(count)); } function padCell(fullWidth, character, value) { const valueWidth = stringWidth(value); const filler = makeList(fullWidth - valueWidth + 1); return value + filler.join(character); } function toRows(rows, cell, i) { rows[i % rows.length].push(cell); return rows; } function toString(arr) { return arr.join(''); } function columns(values, options) { values = concat.apply([], values); options = Object.assign({}, defaults, options); let cells = values.filter(Boolean).map(String); if (options.sort !== false) { cells = cells.sort(byPlainText); } const termWidth = options.width || process.stdout.columns; const cellWidth = Math.max.apply(null, cells.map(stringWidth)) + options.padding; const columnCount = Math.floor(termWidth / cellWidth) || 1; const rowCount = Math.ceil(cells.length / columnCount) || 1; if (columnCount === 1) { return cells.join(options.newline); } return cells .map(padCell.bind(null, cellWidth, options.character)) .reduce(toRows, makeList(rowCount).map(makeArray)) .map(toString) .join(options.newline); } module.exports = columns;
Save
cmd:
run