Skip to content

[Migrate] mui-datatables from JavaScript to TypeScript#57

Open
Rajesh-Nagarajan-11 wants to merge 3 commits into
layer5io:masterfrom
Rajesh-Nagarajan-11:Migration-TS
Open

[Migrate] mui-datatables from JavaScript to TypeScript#57
Rajesh-Nagarajan-11 wants to merge 3 commits into
layer5io:masterfrom
Rajesh-Nagarajan-11:Migration-TS

Conversation

@Rajesh-Nagarajan-11
Copy link
Copy Markdown
Member

@Rajesh-Nagarajan-11 Rajesh-Nagarajan-11 commented May 8, 2026

Notes for Reviewers

This PR fixes #50

Changes :

  • Converted .js / .jsx files to .ts / .tsx inside src/
  • Introduced and configured tsconfig.json
  • Added strong typings across core components and utilities
  • Updated scripts and TypeScript support in package.json

Testing and Build Verification :

1. mui-datatables Tests :

  • Ran all existing Mocha tests in mui-datatables
  • Verdict: ✅ Total: 234 tests passing in ~10 seconds

2. Example Site Verification:

  • Ran the example site
  • Verdict:
    • ✅ Example site rendered successfully
    • ✅ All tables rendered correctly
    • ✅ Sorting, filtering, pagination, and other functionalities are working as expected

3. Build Verification :

  • Built mui-datatables after the migration
  • Verdict:
    • ✅ Build completed successfully
    • ✅ dist/ generated successfully in 4.6s

4. Compatibility Verification:

  • Sistent :

    • Installed migrated mui-datatables with Sistent and verified the build
    • Verdict:
      • ✅ Successfully installed
      • ✅ Build succeeded
  • Meshery UI :

    • Installed migrated mui-datatables with Meshery UI along with Sistent
    • Verdict:
      • ✅ Successfully installed
      • ✅Build succeeded
      • ✅ Tables rendered as expected
      • ✅ GitHub workflow for testing mui-datatables with Meshery UI also succeeded

Next Steps :

  • Currently, only the src codebase has been migrated to .ts / .tsx
  • Next step is migrating test files to TypeScript
  • Example site can also be migrated to .ts / .tsx if needed

Attached demo video showcasing the example site functionality and verification after the TypeScript migration

Screencast.from.2026-05-09.14-28-21.webm

Signed commits

  • Yes, I signed my commits.

Signed-off-by: Rajesh-Nagarajan-11 <rajeshnagarajan36@gmail.com>
Comment thread package.json Outdated
Comment thread package.json
Comment thread src/hooks/useColumnDrop.ts Outdated
Copy link
Copy Markdown

@banana-three-join banana-three-join left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Copy Markdown
Member

@Sbragul26 Sbragul26 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@rishiraj38
Copy link
Copy Markdown
Member

LGTM!!!!

… components

Signed-off-by: Rajesh-Nagarajan-11 <rajeshnagarajan36@gmail.com>
Copy link
Copy Markdown

@Junnygram Junnygram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Katotodan
Copy link
Copy Markdown
Member

LGTM

Comment thread src/MUIDataTable.tsx Outdated
Signed-off-by: Rajesh-Nagarajan-11 <rajeshnagarajan36@gmail.com>
Copy link
Copy Markdown
Member

@KhushamBansal KhushamBansal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

Copy link
Copy Markdown
Member

@rishiraj38 rishiraj38 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally with Meshery UI and also with Sistent. Tests are passing successfully, and the UI was also tested, the tables are rendering and working as expected. These are some test references;
Image
Image

@Daniel-1600
Copy link
Copy Markdown

everything passes!!

@UtkarshAnandd
Copy link
Copy Markdown

@Rajesh-Nagarajan-11 LGTM and All the test cases are passing locally for me 👍🏻

Copy link
Copy Markdown

@Omkar-Ugal Omkar-Ugal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally
Build successful, all tests passing, Type check passed zero errors
Local UI - all working: table rendering, sorting, filtering, search, pagination, row selection
LGTM! Great work @Rajesh-Nagarajan-11

@AnkitRewar11
Copy link
Copy Markdown

Tested locally.
Build Verification:

✅ TypeScript typecheck (tsc --noEmit) passed with zero errors
✅ Build completed successfully — dist/index.js generated in 2.3s
✅ Prettier formatting completed without issues

Test Verification:

✅ Ran all existing Mocha tests in mui-datatables
✅ Verdict: Total 234 tests passing in ~5 seconds

Example Site Verification:

✅ Example site rendered successfully on localhost:5050
✅ All 37 examples loaded and tables rendered correctly
✅ Sorting, filtering, pagination, and other functionalities working as expected

Sistent Compatibility:

✅ Installed migrated mui-datatables with Sistent and verified the build
✅ Sistent build completed successfully (CJS + ESM + DTS)
✅ CJS build: dist/index.js — 4.92 MB
✅ ESM build: dist/index.mjs — 4.88 MB
✅ DTS build: dist/index.d.ts — 92.37 KB

Meshery UI Compatibility:

✅ Installed migrated mui-datatables with Meshery UI along with Sistent
✅ Meshery UI build completed successfully — all 18 pages compiled without errors
✅ Configuration → Designs page rendering correctly
✅ Performance → Profiles page rendering correctly
✅ UI responsive and working as expected

LGTM 🚀

Copy link
Copy Markdown

@Oluwatunmise-olat Oluwatunmise-olat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested with the UI and sistent. Lgtm

Copy link
Copy Markdown

@thechillbasu thechillbasu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate mui-datatables from JavaScript to TypeScript