📌 a simple javascript (node.js) library for drawing ascii tables in the terminal and console.
$ npm install terminal-char-table
- Create a simple char table with default options.
const CharTable = require('terminal-char-table');
let table = new CharTable();
// fill the table row by rows
table.append(['1', 'xxx', 'xxx', ':)', '?']);
table.append(['2', 'xxx', 'xxx']);
table.append(['3', 'xxx', 'xxx', ':3']);
table.append(['10', 'xxx', 'xxx', '', 'owo']);
// this row will be the table header
table.insert(['#', 'column1', 'column2']);
// output table with 1 indentation
console.log(table.string(1));
Constructor function of CharTable
class, An object with optional propertys can be passed in:
- @string
column_align
: default alignment of columns, value can be aleft
orright
orcenter
. defaultleft
. - @number
column_fill_length
: an integer to specify how many spaces fill into each columns. default2
.- bigger value will make the table looks more wider, if alignment is
left
orright
, set this value to2
or higher is recommended.
- bigger value will make the table looks more wider, if alignment is
- @boolean
column_empty_drawn
: specify whether empty columns are drawn. defaulttrue
.
Add a new row at the top of the table.
- @string[]
columns
: an array of string to build columns of this row left side to right. - @string
align
: columns alignment of this row, value can be aleft
orright
orcenter
.
Add a new row at the bottom of the table.
- @string[]
columns
: an array of string to build columns of this row left side to right. - @string
align
: columns alignment of this row, value can be aleft
orright
orcenter
.
Set the table rows from given data.
- @string[]
rows
: an array include rows to append, each cell is columns of that row. - @string
align
: columns alignment of each rows, value can be aleft
orright
orcenter
.
// table header
table.append(['#', 'data', 'alignment']);
// 1~3 rows (center alignment)
table.from([['1', '-----', 'center'], ['2', '-----', 'center'], ['3', '-----', 'center']], 'center');
// 4~6 rows (default alignment)
table.from([['4', '-----', 'default'], ['5', '-----', 'default'], ['6', '-----', 'default']]);
Set the table rows from given data.
- @object[]
row_objects
: an array of object that include rows to append, each object indicated a single row:- @string[]
columns
: an array of string to build columns of that row left side to right. - @string?
align
: columns alignment of that row, value can be aleft
orright
orcenter
.
- @string[]
table.from2([
{
columns: ['#', 'data', 'alignment']
},
{
columns: ['1', '-----', 'left'],
align: 'left'
},
{
columns: ['2', '-----', 'center'],
align: 'center'
},
{
columns: ['3', '-----', 'right'],
align: 'right'
}
]);
Get printable string lines. an array of string will be returned.
Get printable string. wrapped from lines()
method.
- @number
left_indentation
: an integer to specify how many spaces filling before each string lines. default0
. - @boolean
first_line_break
: specify whether add a line break before the first line. defaultfalse
.
Delete all rows in the table.
- The complete methods and description can be found in
module.js
- More example see
test.js
and run test usingnpm test
command.