Charlie Lamb
Explore posts from serversHono RPC TypeScript error
Hey I'm getting a really frusttrating error where TypeScript is not inferring types in a monorepo. I'm building a monorepo using Nextjs for the frontend and bun & hono for the backend. I'm trying to use hono rpc and I'm exporting the type of my router like this in my app.ts file in my backend project:
import createApp from '@/lib/create-app'
import configureOpenAPI from '@/lib/configure-open-api'
import index from '@/routes/index.route'
import users from '@/routes/user/user.index'
import connects from '@/routes/connects/connects.index'
const app = createApp()
const routes = [index, users, connects] as const
configureOpenAPI(app)
routes.forEach((route) => {
app.route('/', route)
})
export default app
export type AppType = (typeof routes)[number]
and then trying to import it in my frontend project in my client.ts file
import type { AppType } from '../backend/src/app'
import { hc } from 'hono/client'
const client = hc<AppType>('http://localhost:8000')
export default client
This isn't working and my Type is being inferred as any. When I hover over app type in app.ts in my backend - I see this type
type AppType = OpenAPIHono<AppBindings, {
"/": {
$get: {
input: {};
output: {
message: string;
};
outputFormat: "json" | "text";
status: 200;
};
};
}, "/"> | OpenAPIHono<AppBindings, {
...;
}, "/"> | OpenAPIHono<...>
It 100% has the right type.
When I hover over AppType in client.ts however I see this:
(alias) type AppType = any
import AppType
Anyone know how I can fix this issue?
Repo to see for yourself + all tsconfigs: https://github.com/charlietlamb/postpad
Thanks for all help 🙂
5 replies