Fix code style issues raised by linting.

This commit is contained in:
Mark Jones 2018-04-26 13:00:35 +01:00
parent e2af3c78e7
commit 411bba53a8
1 changed files with 28 additions and 36 deletions

View File

@ -1,19 +1,17 @@
import Utils from "../Utils.js";
/**
* ToTable operations.
*
* @author Mark Jones [github.com/justanothermark]
* @namespace
*/
const ToTable = {
const ToTable = {
/**
* @constant
* @default
*/
SEPARATORS: [
{name: "Comma", value:","},
{name: "Tab", value: escape("\t")},
{name: "Comma", value: ","},
{name: "Tab", value: "\\t"},
{name: "Pipe", value: "|"},
{name: "Custom", value: ""}
],
@ -23,8 +21,8 @@ import Utils from "../Utils.js";
* @default
*/
FORMATS: [
'ASCII',
'HTML'
"ASCII",
"HTML"
],
/**
@ -41,23 +39,22 @@ import Utils from "../Utils.js";
let tableData = [];
// If the separator contains any tabs, convert them to tab characters.
separator = separator.replace('\\t', '\t');
separator = separator.replace("\\t", "\t");
// Process the input into a nested array of elements.
let rows = input.split('\n');
let rows = input.split("\n");
rows.forEach(function(element) {
if (separator == '') {
if (separator === "") {
tableData.push([element]);
}
else {
} else {
tableData.push(element.split(separator));
}
});
// Render the data in the requested format.
let output = '';
let output = "";
switch (format) {
case 'ASCII':
case "ASCII":
output = asciiOutput(tableData);
break;
@ -75,31 +72,22 @@ import Utils from "../Utils.js";
* @returns {string}
*/
function asciiOutput(tableData) {
const horizontalBorder = '-';
const verticalBorder = '|';
const crossBorder = '+';
const horizontalBorder = "-";
const verticalBorder = "|";
const crossBorder = "+";
let output = '';
let output = "";
let longestCells = [];
// Find longestCells value per column to pad cells equally.
tableData.forEach(function(row, index) {
row.forEach(function(cell, cellIndex) {
if (longestCells[cellIndex] == undefined || cell.length > longestCells[cellIndex]) {
if (longestCells[cellIndex] === undefined || cell.length > longestCells[cellIndex]) {
longestCells[cellIndex] = cell.length;
}
});
});
// Calculate the complete row length. This is the length of the
// longest cell for each column plus 3 characters per cell
// (1 padding each side of the value and 1 for the cell border)
// plus 1 for the final cell border.
let rowLength = (longestCells.length * 3) + 1;
longestCells.forEach(function(celllongestCells) {
rowLength += celllongestCells;
});
// Add the top border of the table to the output.
output += outputHorizontalBorder(longestCells);
@ -127,9 +115,9 @@ import Utils from "../Utils.js";
function outputRow(row, longestCells) {
let rowOutput = verticalBorder;
row.forEach(function(cell, index) {
rowOutput += ' ' + cell + ' '.repeat(longestCells[index] - cell.length) + ' ' + verticalBorder;
rowOutput += " " + cell + " ".repeat(longestCells[index] - cell.length) + " " + verticalBorder;
});
rowOutput += '\n';
rowOutput += "\n";
return rowOutput;
}
@ -142,7 +130,7 @@ import Utils from "../Utils.js";
longestCells.forEach(function(cellLength) {
rowOutput += horizontalBorder.repeat(cellLength + 2) + crossBorder;
});
rowOutput += '\n';
rowOutput += "\n";
return rowOutput;
}
}
@ -158,20 +146,26 @@ import Utils from "../Utils.js";
if (firstRowHeader) {
let row = tableData.shift();
output += "<thead>";
output += outputRow(row, 'th');
output += outputRow(row, "th");
output += "</thead>";
}
// Output the rest of the rows in the <tbody>.
output += "<tbody>";
tableData.forEach(function(row, index) {
output += outputRow(row, 'td');
output += outputRow(row, "td");
});
// Close the body and table elements.
output += "</tbody></table>";
return output;
/**
* Outputs a table row.
*
* @param {string[]} row
* @param {string} cellType
*/
function outputRow(row, cellType) {
let output = "<tr>";
row.forEach(function(cell) {
@ -181,9 +175,7 @@ import Utils from "../Utils.js";
return output;
}
}
return output;
}
};
export default ToTable;
export default ToTable;