What is text-table?
The text-table npm package is a utility for formatting data into a table-like structure using plain text. It is useful for creating simple, readable tables in console applications or for formatting data in a tabular form without the need for HTML or graphical interfaces.
What are text-table's main functionalities?
Simple table creation
This feature allows you to create a simple text-based table with rows of data. Each sub-array represents a row in the table.
var table = require('text-table');
var t = table([
['master', '0123456789abcdef', 'Initial commit'],
['test', 'fedcba9876543210', 'Work in progress']
]);
console.log(t);
Alignment and padding
This feature allows you to specify alignment and padding for the columns in the table. The 'align' option takes an array of characters representing the alignment for each column ('.' for right, '-' for left). The 'hsep' option specifies a horizontal separator.
var table = require('text-table');
var t = table([
['beep', '1024'],
['boop', '33450'],
['foo', '1006'],
['bar', '45']
], { align: ['.','-'], hsep: ' | ' });
console.log(t);
Other packages similar to text-table
cli-table
cli-table is a package that provides similar functionality to text-table, allowing for table creation in the console. It offers additional features such as customizable borders, header columns, and cell coloring, which can make the tables more visually appealing and easier to read.
table
The 'table' package is another alternative to text-table that provides a rich set of features for creating and formatting tables in the console. It supports advanced features like column width calculation, text wrapping, and alignment, making it a more powerful tool for complex table layouts.
ascii-table
ascii-table is a lightweight package for creating ASCII tables. It is similar to text-table but offers a fluent API for building and styling tables, which can be more intuitive for some users. However, it may not be as minimalistic as text-table for simple table creation.
text-table
generate borderless text table strings suitable for printing to stdout
example
default align
var table = require('text-table');
var t = table([
[ 'master', '0123456789abcdef' ],
[ 'staging', 'fedcba9876543210' ]
]);
console.log(t);
master 0123456789abcdef
staging fedcba9876543210
left-right align
var table = require('text-table');
var t = table([
[ 'beep', '1024' ],
[ 'boop', '33450' ],
[ 'foo', '1006' ],
[ 'bar', '45' ]
], { align: [ 'l', 'r' ] });
console.log(t);
beep 1024
boop 33450
foo 1006
bar 45
dotted align
var table = require('text-table');
var t = table([
[ 'beep', '1024' ],
[ 'boop', '334.212' ],
[ 'foo', '1006' ],
[ 'bar', '45.6' ],
[ 'baz', '123.' ]
], { align: [ 'l', '.' ] });
console.log(t);
beep 1024
boop 334.212
foo 1006
bar 45.6
baz 123.
centered
var table = require('text-table');
var t = table([
[ 'beep', '1024', 'xyz' ],
[ 'boop', '3388450', 'tuv' ],
[ 'foo', '10106', 'qrstuv' ],
[ 'bar', '45', 'lmno' ]
], { align: [ 'l', 'c', 'l' ] });
console.log(t);
beep 1024 xyz
boop 3388450 tuv
foo 10106 qrstuv
bar 45 lmno
methods
var table = require('text-table')
var s = table(rows, opts={})
Return a formatted table string s
from an array of rows
and some options
opts
.
rows
should be an array of arrays containing strings, numbers, or other
printable values.
options can be:
opts.hsep
- separator to use between columns, default ' '
opts.align
- array of alignment types for each column, default ['l','l',...]
opts.stringLength
- callback function to use when calculating the string length
alignment types are:
'l'
- left'r'
- right'c'
- center'.'
- decimal
install
With npm do:
npm install text-table
Use with ANSI-colors
Since the string length of ANSI color schemes does not equal the length
JavaScript sees internally it is necessary to pass the a custom string length
calculator during the main function call.
See the test/ansi-colors.js
file for an example.
license
MIT