Skip to content

Commit

Permalink
Add Prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
Turbo87 committed Jun 10, 2018
1 parent 71f2a23 commit a0f155d
Show file tree
Hide file tree
Showing 19 changed files with 1,574 additions and 1,805 deletions.
22 changes: 12 additions & 10 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,21 @@ module.exports = {
ecmaVersion: 6,
},
env: {
'node': true,
node: true,
},
extends: 'eslint:recommended',
extends: ['eslint:recommended', 'prettier'],
plugins: ['prettier'],
rules: {
'prettier/prettier': 'error',
'no-control-regex': 'off',
},
overrides: [{
// tests
files: [
'test/**/*.js',
],
env: {
jest: true,
overrides: [
{
// tests
files: ['test/**/*.js'],
env: {
jest: true,
},
},
}],
],
};
214 changes: 103 additions & 111 deletions examples/basic-usage-examples.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,208 +2,200 @@ var Table = require('../src/table');
var colors = require('colors/safe');

module.exports = function(runTest) {

function it(name, fn) {
var result = fn();
runTest(name, result[0], result[1], result[2]);
}

it('Basic Usage',function(){
function makeTable(){
it('Basic Usage', function() {
function makeTable() {
// By default, headers will be red, and borders will be grey
var table = new Table({head:['a','b']});
var table = new Table({ head: ['a', 'b'] });

table.push(['c','d']);
table.push(['c', 'd']);

return table;
}

var expected = [
colors.gray('┌───') + colors.gray('┬───┐')
, colors.gray('│') + colors.red(' a ') + colors.gray('│') + colors.red(' b ') + colors.gray('│')
, colors.gray('├───') + colors.gray('┼───┤')
, colors.gray('│') + (' c ') + colors.gray('│') + (' d ') + colors.gray('│')
, colors.gray('└───') + colors.gray('┴───┘')
colors.gray('┌───') + colors.gray('┬───┐'),
colors.gray('│') + colors.red(' a ') + colors.gray('│') + colors.red(' b ') + colors.gray('│'),
colors.gray('├───') + colors.gray('┼───┤'),
colors.gray('│') + ' c ' + colors.gray('│') + ' d ' + colors.gray('│'),
colors.gray('└───') + colors.gray('┴───┘'),
];

return [makeTable,expected,'basic-usage-with-colors'];
return [makeTable, expected, 'basic-usage-with-colors'];
});

it('Basic Usage - disable colors - (used often in the examples and tests)', function (){
function makeTable(){
it('Basic Usage - disable colors - (used often in the examples and tests)', function() {
function makeTable() {
// For most of these examples, and most of the unit tests we disable colors.
// It makes unit tests easier to write/understand, and allows these pages to
// display the examples as text instead of screen shots.
var table = new Table({
head: ['Rel', 'Change', 'By', 'When']
, style: {
head: [] //disable colors in header cells
, border: [] //disable colors for the border
}
, colWidths: [6, 21, 25, 17] //set the widths of each column (optional)
head: ['Rel', 'Change', 'By', 'When'],
style: {
head: [], //disable colors in header cells
border: [], //disable colors for the border
},
colWidths: [6, 21, 25, 17], //set the widths of each column (optional)
});

table.push(
['v0.1', 'Testing something cool', 'rauchg@gmail.com', '7 minutes ago']
, ['v0.1', 'Testing something cool', 'rauchg@gmail.com', '8 minutes ago']
['v0.1', 'Testing something cool', 'rauchg@gmail.com', '7 minutes ago'],
['v0.1', 'Testing something cool', 'rauchg@gmail.com', '8 minutes ago']
);

return table;
}

var expected = [
'┌──────┬─────────────────────┬─────────────────────────┬─────────────────┐'
, '│ Rel │ Change │ By │ When │'
, '├──────┼─────────────────────┼─────────────────────────┼─────────────────┤'
, '│ v0.1 │ Testing something … │ rauchg@gmail.com │ 7 minutes ago │'
, '├──────┼─────────────────────┼─────────────────────────┼─────────────────┤'
, '│ v0.1 │ Testing something … │ rauchg@gmail.com │ 8 minutes ago │'
, '└──────┴─────────────────────┴─────────────────────────┴─────────────────┘'
'┌──────┬─────────────────────┬─────────────────────────┬─────────────────┐',
'│ Rel │ Change │ By │ When │',
'├──────┼─────────────────────┼─────────────────────────┼─────────────────┤',
'│ v0.1 │ Testing something … │ rauchg@gmail.com │ 7 minutes ago │',
'├──────┼─────────────────────┼─────────────────────────┼─────────────────┤',
'│ v0.1 │ Testing something … │ rauchg@gmail.com │ 8 minutes ago │',
'└──────┴─────────────────────┴─────────────────────────┴─────────────────┘',
];

return [makeTable,expected];
return [makeTable, expected];
});

it('Create vertical tables by adding objects a that specify key-value pairs', function() {
function makeTable(){
var table = new Table({ style: {'padding-left':0, 'padding-right':0, head:[], border:[]} });
function makeTable() {
var table = new Table({
style: { 'padding-left': 0, 'padding-right': 0, head: [], border: [] },
});

table.push(
{'v0.1': 'Testing something cool'}
, {'v0.1': 'Testing something cool'}
);
table.push({ 'v0.1': 'Testing something cool' }, { 'v0.1': 'Testing something cool' });

return table;
}

var expected = [
'┌────┬──────────────────────┐'
, '│v0.1│Testing something cool│'
, '├────┼──────────────────────┤'
, '│v0.1│Testing something cool│'
, '└────┴──────────────────────┘'
'┌────┬──────────────────────┐',
'│v0.1│Testing something cool│',
'├────┼──────────────────────┤',
'│v0.1│Testing something cool│',
'└────┴──────────────────────┘',
];

return [makeTable,expected];
return [makeTable, expected];
});

it('Cross tables are similar to vertical tables, but include an empty string for the first header', function() {
function makeTable(){
var table = new Table({ head: ["", "Header 1", "Header 2"], style: {'padding-left':0, 'padding-right':0, head:[], border:[]} }); // clear styles to prevent color output
function makeTable() {
var table = new Table({
head: ['', 'Header 1', 'Header 2'],
style: { 'padding-left': 0, 'padding-right': 0, head: [], border: [] },
}); // clear styles to prevent color output

table.push(
{"Header 3": ['v0.1', 'Testing something cool'] }
, {"Header 4": ['v0.1', 'Testing something cool'] }
{ 'Header 3': ['v0.1', 'Testing something cool'] },
{ 'Header 4': ['v0.1', 'Testing something cool'] }
);

return table;
}

var expected = [
'┌────────┬────────┬──────────────────────┐'
, '│ │Header 1│Header 2 │'
, '├────────┼────────┼──────────────────────┤'
, '│Header 3│v0.1 │Testing something cool│'
, '├────────┼────────┼──────────────────────┤'
, '│Header 4│v0.1 │Testing something cool│'
, '└────────┴────────┴──────────────────────┘'
'┌────────┬────────┬──────────────────────┐',
'│ │Header 1│Header 2 │',
'├────────┼────────┼──────────────────────┤',
'│Header 3│v0.1 │Testing something cool│',
'├────────┼────────┼──────────────────────┤',
'│Header 4│v0.1 │Testing something cool│',
'└────────┴────────┴──────────────────────┘',
];

return [makeTable,expected];
return [makeTable, expected];
});

it('Stylize the table with custom border characters', function (){
function makeTable(){
it('Stylize the table with custom border characters', function() {
function makeTable() {
var table = new Table({
chars: {
'top': '═'
, 'top-mid': '╤'
, 'top-left': '╔'
, 'top-right': '╗'
, 'bottom': '═'
, 'bottom-mid': '╧'
, 'bottom-left': '╚'
, 'bottom-right': '╝'
, 'left': '║'
, 'left-mid': '╟'
, 'right': '║'
, 'right-mid': '╢'
top: '═',
'top-mid': '╤',
'top-left': '╔',
'top-right': '╗',
bottom: '═',
'bottom-mid': '╧',
'bottom-left': '╚',
'bottom-right': '╝',
left: '║',
'left-mid': '╟',
right: '║',
'right-mid': '╢',
},
style: {
head: []
, border: []
}
head: [],
border: [],
},
});

table.push(
['foo', 'bar', 'baz']
, ['frob', 'bar', 'quuz']
);
table.push(['foo', 'bar', 'baz'], ['frob', 'bar', 'quuz']);

return table;
}

var expected = [
'╔══════╤═════╤══════╗'
, '║ foo │ bar │ baz ║'
, '╟──────┼─────┼──────╢'
, '║ frob │ bar │ quuz ║'
, '╚══════╧═════╧══════╝'
'╔══════╤═════╤══════╗',
'║ foo │ bar │ baz ║',
'╟──────┼─────┼──────╢',
'║ frob │ bar │ quuz ║',
'╚══════╧═════╧══════╝',
];

return [makeTable,expected];
return [makeTable, expected];
});

it('Use ansi colors (i.e. colors.js) to style text within the cells at will, even across multiple lines',function(){
function makeTable(){
var table = new Table({style:{border:[],header:[]}});
it('Use ansi colors (i.e. colors.js) to style text within the cells at will, even across multiple lines', function() {
function makeTable() {
var table = new Table({ style: { border: [], header: [] } });

table.push([
colors.red('Hello\nhow\nare\nyou?'),
colors.blue('I\nam\nfine\nthanks!')
]);
table.push([colors.red('Hello\nhow\nare\nyou?'), colors.blue('I\nam\nfine\nthanks!')]);

return table;
}

var expected = [
'┌───────┬─────────┐'
, '│ ' + colors.red('Hello') + ' │ ' + colors.blue('I') + ' │'
, '│ ' + colors.red('how') + ' │ ' + colors.blue('am') + ' │'
, '│ ' + colors.red('are') + ' │ ' + colors.blue('fine') + ' │'
, '│ ' + colors.red('you?') + ' │ ' + colors.blue('thanks!') + ' │'
, '└───────┴─────────┘'
'┌───────┬─────────┐',
'│ ' + colors.red('Hello') + ' │ ' + colors.blue('I') + ' │',
'│ ' + colors.red('how') + ' │ ' + colors.blue('am') + ' │',
'│ ' + colors.red('are') + ' │ ' + colors.blue('fine') + ' │',
'│ ' + colors.red('you?') + ' │ ' + colors.blue('thanks!') + ' │',
'└───────┴─────────┘',
];

return [makeTable,expected,'multi-line-colors'];
return [makeTable, expected, 'multi-line-colors'];
});

it('Set `wordWrap` to true to make lines of text wrap instead of being truncated',function(){
function makeTable(){
it('Set `wordWrap` to true to make lines of text wrap instead of being truncated', function() {
function makeTable() {
var table = new Table({
style:{border:[],header:[]},
colWidths:[7,9],
wordWrap:true
style: { border: [], header: [] },
colWidths: [7, 9],
wordWrap: true,
});

table.push([
'Hello how are you?',
'I am fine thanks!'
]);
table.push(['Hello how are you?', 'I am fine thanks!']);

return table;
}

var expected = [
'┌───────┬─────────┐'
, '│ Hello │ I am │'
, '│ how │ fine │'
, '│ are │ thanks! │'
, '│ you? │ │'
, '└───────┴─────────┘'
'┌───────┬─────────┐',
'│ Hello │ I am │',
'│ how │ fine │',
'│ are │ thanks! │',
'│ you? │ │',
'└───────┴─────────┘',
];

return [makeTable,expected];
return [makeTable, expected];
});
};

Expand All @@ -219,4 +211,4 @@ module.exports = function(runTest) {
, '│ │ … │ │ │'
, '└──┴───┴──┴──┘'
];
*/
*/
Loading

0 comments on commit a0f155d

Please sign in to comment.