@klny/text-table
v1.0.2
Published
Create text table from JS objects/arrays to visualize data in console/log
Downloads
10
Maintainers
Readme
text-table
Create text table from JS objects/arrays to visualize data in console/log
Usage
Import package for example as "table" and use it to get text table representation of your JS object or array.
Imported "table" is a function:
function table(tableName, data, units) {};
- tableName - name of the table, will be centralized above table (empty string to skip)
- data - JS object/array to be printed as table
- units - optional, will be printed at the end of each data row inside [] if provided
Examples
Print JS object as table:
const table = require('@klny/text-table');
const obj = {
first: { max: 1000, min: 1, avg: 500 },
second: { max: 7.5350695, min: 2, avg: 5 },
third: { max: 15, min: 11, avg: 13 }
};
console.log(table(' - - - performance stats - - - ', obj, 'ms'));
- - - performance stats - - -
| max | min | avg
----------------------------------------
first | 1000.000000 | 1 | 500 [ms]
second | 7.535069 | 2 | 5 [ms]
third | 15.000000 | 11 | 13 [ms]
Print array as table:
const table = require('@klny/text-table');
const arr = [
{ product: 'tv', description: 'oled television', price: 1500 },
{ product: 'ps4pro', description: 'playstation 4 pro', price: 450 },
{ product: 'notebook', description: 'hp elitebook 840 G5', price: 935 }
];
console.log(table(' - - - product list - - - ', arr));
- - - product list - - -
product | description | price
---------------------------------------
tv | oled television | 1500
ps4pro | playstation 4 pro | 450
notebook | hp elitebook 840 G5 | 935
Configuration
Default configuration is a JS object:
const config = {
cellSpacing: 1,
columnDivider: '|',
decimalPlaces: 6,
emptyLinesTop: 1,
emptyLinesAfterName: 1,
emptyLinesBottom: 2
};
To change configuration use "configure" method.
Specify any or all configuration keys. Default values will be used for missing keys.
const table = require('@klny/text-table');
table.configure({
cellSpacing: 3,
columnDivider: ' ',
decimalPlaces: 15
});
const obj = {
first: { max: 1000, min: 1, avg: 500 },
second: { max: 7.5350695, min: 2, avg: 5 },
third: { max: 15, min: 11, avg: 13 }
};
console.log(table(' - - - performance stats reconfigured - - - ', obj, 'min'));
- - - performance stats reconfigured - - -
max min avg
----------------------------------------------------------------
first 1000.000000000000000 1 500 [min]
second 7.535069500000000 2 5 [min]
third 15.000000000000000 11 13 [min]
Limitations
- works with array/object representation of JS objects only
- only first level of included objects are printed in table (no inner tables)
- array length will be printed in case of inner array
- string 'object' will be printed in case of inner object
Installation
$ npm install @klny/text-table