-
-
Notifications
You must be signed in to change notification settings - Fork 136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bug: inference error when creating OpenApiDocument. The inferred type of 'openApiDocument' cannot be named without a reference to '.pnpm/[email protected]/node_modules/openapi-types'. This is likely not portable. A type annotation is necessary.ts (2742) #408
Comments
I have a similar problem, when I try to build my api library form another package using tsup I get the When commenting the openapi meta line: const t = initTRPC
// .meta<OpenApiMeta>() // With this line commented the code compiles
.context<typeof createTRPCContext>().create({
transformer: superjson,
errorFormatter({ shape, error }) {
return {
...shape,
data: {
...shape.data,
zodError:
error.cause instanceof ZodError ? error.cause.flatten() : null,
},
};
},
}); |
@MaximilianGaedig Have you found any workaround for this? Im running into the same issue trying to add |
Hey @IsaiahByDayah, yea, we're using it in production for a while already, we've just casted it to OpenApiRouter import { type OpenApiRouter, generateOpenApiDocument } from 'trpc-openapi';
const openApiDocument = generateOpenApiDocument((openApiRouter as OpenApiRouter),{...}) |
Hmmm, @MaximilianGaedig this fixed your issue when adding |
Would you be able to share a link to your codebase? Happy to try and dig through the source myself to figure out if theres anything different between setups |
I just left that commented, about the meta calls, I have not had the same happen
Can't do that, sorry, it's a proprietary product a part of my tsconfig.json which might help: {
"compilerOptions": {
"incremental": false,
"module": "node16",
"moduleResolution": "node16"
},
"include": [
"src/index.ts"
],
"exclude": [
"node_modules",
"@trpc/server"
]
} |
Oh, strange 🤔. And you guys are able to still get type inference when you set the export const appRouter = t.router({
sayHello: t.procedure
.meta({ openapi: { method: 'GET', path: '/say-hello' } }) // 👈 this line here
.input(z.object({ name: z.string() }))
.output(z.object({ greeting: z.string() }))
.query(({ input }) => {
return { greeting: `Hello ${input.name}!` };
});
}); |
we might be not using a part of this, well we have those meta tags for sure, but we don't use the types from that directly, we generate this openapi file and then use it in another package where we have an openapi-fetch client from that |
You can clone this repo in the linked commit:
https://github.com/MiniSuperDev/turbo-trpc-bug/tree/93a6efbce0a9c3a178f411831444ee52104a0c78
The error is in this line:
https://github.com/MiniSuperDev/turbo-trpc-bug/blob/93a6efbce0a9c3a178f411831444ee52104a0c78/apps/express-api/src/openapi.ts#L4
I'm using a monorepo with turborepo and pnpm.
Thanks
The text was updated successfully, but these errors were encountered: