inertiajs / inertia

Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.
https://inertiajs.com
MIT License
6.3k stars 423 forks source link

TypeScript types are not exported properly #1793

Open irshadahmad21 opened 7 months ago

irshadahmad21 commented 7 months ago

Versions:

Describe the problem:

When importing types in a project with NodeNext as module and moduleResolution in tsconfig.json, the types are not being resolved properly because.

Steps to reproduce:

// tsconfig.json
{
  "compilerOptions": {
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "strict": true
  }
}
// app.ts
import { VisitOptions } from '@inertiajs/core';

Error:

Screenshot 2024-02-10 at 9 29 18 PM
Module '"@inertiajs/core"' has no exported member 'VisitOptions'.

Similarly, there are other such errors for all the types when strict model is enabled in tsconfig.json

Screenshot 2024-02-10 at 9 27 48 PM

Reason

arethetypeswrong correctly points out the problems with the exported types

"@inertiajs/core""@inertiajs/core/server"
node10
node16 (from CJS) ⚠️ ESM (dynamic import only)
🚭 Unexpected module syntax
🥴 Internal resolution error (6)
⚠️ ESM (dynamic import only)
❗️ Incorrect default export
🚭 Unexpected module syntax
🥴 Internal resolution error
node16 (from ESM) 🥴 Internal resolution error (6)🥴 Internal resolution error
bundler
"@inertiajs/react""@inertiajs/react/server"
node10
node16 (from CJS) ⚠️ ESM (dynamic import only)
🚭 Unexpected module syntax
🥴 Internal resolution error (6)
⚠️ ESM (dynamic import only)
❗️ Incorrect default export
🚭 Unexpected module syntax
node16 (from ESM) 🥴 Internal resolution error (6)✅ (ESM)
bundler