1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# text-table
generate borderless text table strings suitable for printing to stdout
[](http://travis-ci.org/substack/text-table)
[](http://ci.testling.com/substack/text-table)
# example
## default align
``` js
var table = require('text-table');
var t = table([
[ 'master', '0123456789abcdef' ],
[ 'staging', 'fedcba9876543210' ]
]);
console.log(t);
```
```
master 0123456789abcdef
staging fedcba9876543210
```
## left-right align
``` js
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
``` js
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
``` js
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
``` js
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](https://npmjs.org) 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
|