Skip to content

feat: add TypeScript to utils and code-split heavy components#609

Merged
Mystery-CLI merged 2 commits into
Ethereal-Future:mainfrom
Markodiba:feat/typescript-and-code-splitting
May 29, 2026
Merged

feat: add TypeScript to utils and code-split heavy components#609
Mystery-CLI merged 2 commits into
Ethereal-Future:mainfrom
Markodiba:feat/typescript-and-code-splitting

Conversation

@Markodiba
Copy link
Copy Markdown
Contributor

  • Add typescript ^5, @types/react ^18.3, @types/react-dom ^18.3 to frontend devDependencies and a typecheck (tsc --noEmit) script
  • Add tsconfig.json with strict mode, allowJs/checkJs:false for incremental migration; moduleResolution: bundler for Vite compat
  • Convert all 8 src/utils/ files from .js → .ts with full types: interfaces for ApiError, Transaction, SearchCriteria, ErrorEntry, VitalEntry, AnimationVariants; declare global Window extensions
  • Add tsc --noEmit step to CI workflow (.github/workflows/test.yml)
  • Convert AMMPoolBrowser, AccountRecovery, MultiSigTransactions, KYCForm, ComplianceDashboard, BackupSettings to React.lazy() in App.jsx; wrap each render site in <Suspense fallback={}>
  • Add lazy-loading.test.js asserting no static imports exist for heavy components and lazy() declarations are present
  • Add frontend/docs/typescript-migration.md with 8-phase plan for migrating remaining .jsx files to .tsx

closes #467
closes #468

- Add typescript ^5, @types/react ^18.3, @types/react-dom ^18.3 to
  frontend devDependencies and a `typecheck` (tsc --noEmit) script
- Add tsconfig.json with strict mode, allowJs/checkJs:false for
  incremental migration; moduleResolution: bundler for Vite compat
- Convert all 8 src/utils/ files from .js → .ts with full types:
  interfaces for ApiError, Transaction, SearchCriteria, ErrorEntry,
  VitalEntry, AnimationVariants; declare global Window extensions
- Add tsc --noEmit step to CI workflow (.github/workflows/test.yml)
- Convert AMMPoolBrowser, AccountRecovery, MultiSigTransactions,
  KYCForm, ComplianceDashboard, BackupSettings to React.lazy() in
  App.jsx; wrap each render site in <Suspense fallback={<Spinner />}>
- Add lazy-loading.test.js asserting no static imports exist for
  heavy components and lazy() declarations are present
- Add frontend/docs/typescript-migration.md with 8-phase plan for
  migrating remaining .jsx files to .tsx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 29, 2026

@Markodiba Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Mystery-CLI Mystery-CLI merged commit 0cfa698 into Ethereal-Future:main May 29, 2026
3 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement code splitting for heavy components Add TypeScript to the frontend codebase

2 participants