
Security News
Another Round of TEA Protocol Spam Floods npm, But It’s Not a Worm
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.
prettytable
Advanced tools
CLI based Node module for generating pretty tables from multiple data sources
A CLI based Node.js module for generating and displaying pretty ASCII tables from multiple data sources.
npm install prettytable
Create a table with headers and rows in one shot:
// Import and instantiate
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
// Define headers and data
const headers = ["Name", "Age", "City"];
const rows = [
["John", 22, "New York"],
["Elizabeth", 43, "Chicago"],
["Bill", 31, "Atlanta"],
["Mary", 18, "Los Angeles"],
];
// Create and display table
pt.create(headers, rows);
pt.print();
Output:
+-----------+-----+-------------+
| Name | Age | City |
+-----------+-----+-------------+
| John | 22 | New York |
| Elizabeth | 43 | Chicago |
| Bill | 31 | Atlanta |
| Mary | 18 | Los Angeles |
+-----------+-----+-------------+
Build a table row-by-row:
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
// Set column names
pt.fieldNames(["City", "Area", "Population", "Rainfall"]);
// Add rows one by one
pt.addRow(["Adelaide", 1295, 1158259, 600.5]);
pt.addRow(["Brisbane", 5905, 1857594, 1146.4]);
pt.addRow(["Darwin", 112, 120900, 1714.7]);
pt.addRow(["Hobart", 1357, 205556, 619.5]);
pt.addRow(["Sydney", 2058, 4336374, 1214.8]);
pt.addRow(["Melbourne", 1566, 3806092, 646.9]);
pt.addRow(["Perth", 5386, 1554769, 869.4]);
// Display the table
pt.print();
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
// Load from CSV file (first row is used as headers)
pt.csv("./data.csv");
pt.print();
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
// Load from JSON file (object keys become headers)
pt.json("./data.json");
pt.print();
Get the table as a formatted string:
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
pt.fieldNames(["Name", "Age", "City"]);
pt.addRow(["John", 25, "New York"]);
pt.addRow(["Mary", 30, "Chicago"]);
const tableString = pt.toString();
console.log(tableString);
Create an HTML table representation:
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
pt.fieldNames(["Name", "Age", "City"]);
pt.addRow(["John", 25, "New York"]);
pt.addRow(["Mary", 30, "Chicago"]);
// Basic HTML table
const basicHtml = pt.html();
// HTML table with custom attributes
const styledHtml = pt.html({
id: "data-table",
class: "table table-striped",
border: "1",
});
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
pt.fieldNames(["Name", "Age", "City"]);
pt.addRow(["John", 22, "New York"]);
pt.addRow(["Elizabeth", 43, "Chicago"]);
pt.addRow(["Bill", 31, "Atlanta"]);
pt.addRow(["Mary", 18, "Los Angeles"]);
// Sort by age (ascending)
pt.sortTable("Age");
pt.print();
// Sort by name (descending)
pt.sortTable("Name", true);
pt.print();
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
pt.fieldNames(["Name", "Age", "City"]);
pt.addRow(["John", 22, "New York"]);
pt.addRow(["Elizabeth", 43, "Chicago"]);
pt.addRow(["Bill", 31, "Atlanta"]);
pt.addRow(["Mary", 18, "Los Angeles"]);
// Delete the second row (Elizabeth)
pt.deleteRow(2);
pt.print();
// Clear all rows but keep the structure
pt.clearTable();
pt.print();
// Delete the entire table
pt.deleteTable();
PrettyTable includes comprehensive error handling for all methods:
const PrettyTable = require("prettytable");
const pt = new PrettyTable();
try {
pt.fieldNames(["Name", "Age", "City"]);
pt.addRow(["John", 22]); // Error: Row length doesn't match columns
} catch (error) {
console.error(`Error: ${error.message}`);
}
The PrettyTable module provides the following methods:
| Method | Description |
|---|---|
fieldNames(array) | Define column headers |
addRow(array) | Add a single row |
create(headers, rows) | Create table with headers and rows |
toString() | Return table as a formatted string |
print() | Print table to console |
html([attributes]) | Generate HTML representation |
csv(filename) | Import data from CSV file |
json(filename) | Import data from JSON file |
sortTable(column, [reverse]) | Sort by column |
deleteRow(rownum) | Delete a specific row |
clearTable() | Remove all rows |
deleteTable() | Delete entire table |
This project welcomes contributions! The codebase uses ESLint for code quality and Mocha/Chai for testing.
# Install dependencies
npm install
# Run linter
npm run lint
# Fix automatically fixable issues
npm run lint:fix
# Run tests
npm test
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
CLI based Node module for generating pretty tables from multiple data sources
The npm package prettytable receives a total of 8,359 weekly downloads. As such, prettytable popularity was classified as popular.
We found that prettytable demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.