parse-html-table
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

✓ parse-html-table

A lightweight library for parsing HTML tables into structured data using TypeScript.

📦 Installation

npm

npm install parse-html-table

yarn

yarn add parse-html-table

📚 Documentation

Usage

import {
  createTableParser,
  RowData,
  TableParserFactory,
} from "parse-html-table";

// Define the specific row data interface
interface PersonData extends RowData {
  name: string;
  age: string;
  country: string;
}

// Create a specific table parser factory
export const personTableParserFactory: TableParserFactory<PersonData> =
  createTableParser<PersonData>();

// Example HTML table 1
const html1 = `
  <table>
    <thead>
      <tr>
        <th>name</th>
        <th>age</th>
        <th>country</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>John Doe</td>
        <td>30</td>
        <td>USA</td>
      </tr>
      <tr>
        <td>Jane Smith</td>
        <td>25</td>
        <td>Canada</td>
      </tr>
    </tbody>
  </table>
`;

// Example HTML table 2
// Parse the name of the columns if they have spaces as cameoCase correctly
const html2 = `
  <table>
    <thead>
      <tr>
        <th>full name</th>
        <th>full age</th>
        <th>full country</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>John Doe</td>
        <td>30</td>
        <td>USA</td>
      </tr>
      <tr>
        <td>Jane Smith</td>
        <td>25</td>
        <td>Canada</td>
      </tr>
    </tbody>
  </table>
`;

// Example HTML table 3 (empty table)
const html3 = "";

// Parse table 1
const tableParser1 = personTableParserFactory(html1);
const tableData1 = tableParser1();
console.log("Table 1 Data:", tableData1);

// Parse table 2
const tableParser2 = personTableParserFactory(html2);
const tableData2 = tableParser2();
console.log("Table 2 Data:", tableData2);

// Parse table 3
const tableParser3 = personTableParserFactory(html3);
const tableData3 = tableParser3();
console.log("Table 3 Data:", tableData3);
// table 1
{
  headers: [ 'name', 'age', 'country' ],
  rows: [
    { name: 'John Doe', age: '30', country: 'USA' },
    { name: 'Jane Smith', age: '25', country: 'Canada' }
  ]
}

// table 2
{
  headers: [ 'fullName', 'fullAge', 'fullCountry' ],
  rows: [
    { fullName: 'John Doe', fullAge: '30', fullCountry: 'USA' },
    { fullName: 'Jane Smith', fullAge: '25', fullCountry: 'Canada' }
  ]
}

// table 3
{ 
  headers: [], 
  rows: [] 
}

🤝 Contributing

  • Fork it!
  • Create your feature branch: git checkout -b my-new-feature
  • Commit your changes: git commit -am 'Add some feature'
  • Push to the branch: git push origin my-new-feature
  • Submit a pull request

👥 Credits


💢 Troubleshootings

This is just a personal project created for study / demonstration purpose and to simplify my working life, it may or may not be a good fit for your project(s).


❤️ Show your support

Please this repository if you like it or this project helped you!
Feel free to open issues or submit pull-requests to help me improving my work.


🤖 Author

Chris M. Perez

You can follow me on github · twitter


Copyright ©2023 parse-html-table.

Package Sidebar

Install

npm i parse-html-table

Weekly Downloads

2

Version

1.0.2

License

MIT

Unpacked Size

9.86 kB

Total Files

6

Last publish

Collaborators

  • chris5855