Skip to content

Upgrade frontend toolchain: Vite 8, TypeScript 6, Inertia v3 - #39

Merged
antosubash merged 10 commits into
mainfrom
feature/serene-vaughan
Apr 1, 2026
Merged

antosubash merged 10 commits into
mainfrom
feature/serene-vaughan

Conversation

@antosubash

Copy link
Copy Markdown
Owner

Summary

  • Vite 6→8: rollupOptions→rolldownOptions, __dirname→import.meta.dirname, --configLoader runner for monorepo TS workspace dependencies
  • TypeScript 5→6: strict index signature fixes in chart.tsx, Badge/Button variant renames (secondary→default/info, destructive→danger), PageHeaderProps title type conflict, Playwright ReporterDescription tuples, allowImportingTsExtensions
  • @inertiajs/react 2→3: router.on('invalid')→router.on('httpException') with defensive JSON parsing
  • @vitejs/plugin-react 4→6, cross-env 7→10, Biome 2.4.7→2.4.10
  • Fix missing TenantsDbContext registration in LoadTestWebApplicationFactory
  • Fix tsconfig.json exclude path (src/→packages/)

Test plan

  • npx tsc --noEmit passes with 0 errors
  • npm run build completes successfully for all modules
  • npm run check passes (biome lint + format + page validation)
  • dotnet build compiles backend
  • dotnet test passes (including LoadTests with TenantsDbContext fix)
  • Verify Badge variant distinction in FeatureFlags (on/off) and OpenIddict (confidential/public)
  • Verify Orders create/edit form submission works correctly

….4.10

- Vite 6→8: rollupOptions→rolldownOptions, __dirname→import.meta.dirname,
  --configLoader runner for monorepo TS workspace deps
- TypeScript 5→6: fix strict index signature checks in chart.tsx, Badge/Button
  variant renames (secondary→default/info, destructive→danger, outline→info),
  PageHeaderProps title type conflict, Playwright ReporterDescription tuples
- @inertiajs/react 2→3: router.on('invalid')→router.on('httpException')
- @vitejs/plugin-react 4→6, cross-env 7→10
- Fix missing TenantsDbContext in LoadTestWebApplicationFactory
- Fix tsconfig.json exclude path and add allowImportingTsExtensions
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Mar 31, 2026 •

Copy link
Copy Markdown

Deploying simplemodule-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: b9819d4
Status: ✅  Deploy successful!
Preview URL: https://cc6c8109.simplemodule-website.pages.dev
Branch Preview URL: https://feature-serene-vaughan.simplemodule-website.pages.dev

View logs

Inertia v3 reads initial page data from <script id="inertia-page"
type="application/json"> instead of the data-page attribute on the
root div. Update InertiaPage.razor and the corresponding unit test.
TypeScript 6 requires explicit module declaration for CSS imports
used by the PageBuilder module.
Inertia v3 reads initial page data from
`script[data-page="app"][type="application/json"]` instead of
`script#inertia-page`. Without this, React components mount but
receive no props, rendering empty pages.
- Add AddTenantsModule migration with Tenants_Tenants and
  Tenants_TenantHosts tables plus seed data (3 tenants, 3 hosts)
- Replace EnsureCreated fallback with MigrateAsync-only DB init
  since all schema is managed via Host migrations
Define BulkImport (disabled) and AdvancedPricing (enabled) feature
flags so the featureFlags shared prop is no longer empty.
The setup-build action already builds the project. Adding --no-build
to the dotnet run command avoids a full rebuild when starting the
server for Playwright tests.
…SM shims

Rolldown (Vite 8) cannot convert CJS require() calls for externalized
packages to ESM imports in library mode. This caused runtime errors
when module page bundles loaded in the browser, because
use-sync-external-store's CJS entry uses require('react') internally.

Replace the CJS package with ESM shims that use React 19's built-in
useSyncExternalStore, eliminating all CJS require calls from the
browser-targeted bundles.
Simplify the with-selector shim to pass Biome lint rules
(useOptionalChain, useExhaustiveDependencies).
@antosubash
antosubash merged commit 4b4d9f0 into main Apr 1, 2026
4 checks passed
@antosubash
antosubash deleted the feature/serene-vaughan branch April 1, 2026 15:15
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.

1 participant