Open
Description
Issue
When verbatimModuleSyntax=true it forces import resolution to be like this:
// src/api/gen/generatedModule.ts
import { ContentType, HttpClient } from "./http-client";
import type { Register, RequestParam, UserDto } from "./data-contracts";
But generated code looks like this:
// src/api/gen/generatedModule.ts
import { RegisterRequest, UserDto } from "./data-contracts";
import { ContentType, HttpClient, RequestParams } from "./http-client";
So when running npm run dev
it leads to this error in browser:
module '/src/api/gen/http-client.ts' does not provide an export named 'RequestParams`
npm run build
works as expected.
Versions
node --version
v24.0.2
package.json
:
{
...
"scripts": {
"dev": "react-router dev",
"build": "react-router build",
...
"api": "swagger-typescript-api generate --modular --output=./src/api/gen --path=api-docs.yml"
},
"dependencies": {
"@react-router/node": "^7.6.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router": "^7.6.0",
...
},
"devDependencies": {
"@react-router/dev": "^7.6.0",
"@types/react": "^19.1.5",
"@types/react-dom": "^19.1.5",
"@vitejs/plugin-react-swc": "^3.10.0",
"typescript": "~5.8.3",
"typescript-eslint": "^8.32.1",
"vite": "^6.3.5"
...
}
}
tsconfig.json
:
{
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"lib": ["ESNext", "DOM", "DOM.Iterable"],
"target": "ESNext",
"module": "ESNext",
/* Bundler mode */
"moduleResolution": "bundler",
"verbatimModuleSyntax": true, // Won't work with api, generated by swagger-typescript-api
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",
...
},
"include": ["src"]
}
Metadata
Metadata
Assignees
Labels
No labels