Files
trpc-nuxt/recipes/merging-routers.md
2022-05-19 10:50:50 -07:00

918 B

Merging Routers

Writing all API-code in your code in the same file is not a great idea. It's easy to merge routers with other routers.

// ~/server/trpc/routes/posts.ts
export const posts = trpc.router()
  .mutation('create', {
    input: z.object({
      title: z.string(),
    }),
    resolve: ({ input }) => {
      // ..
      return {
        id: 'xxxx',
        ...input,
      }
    },
  })
  .query('list', {
    resolve() {
      // ..
      return []
    }
  })
// ~/server/trpc/routes/users.ts
export const users = trpc.router()
  .query('list', {
    resolve() {
      // ..
      return []
    }
  })
// ~/server/trpc/index.ts
import { users } from './routes/users'
import { posts } from './routes/posts'

export const router = trpc.router()
  .merge('user.', users) // prefix user procedures with "user."
  .merge('post.', posts) // prefix post procedures with "post."