Saltar al contenido principal
Versión: 9.x

Combinación de Routers

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Escribir todo el código de la API en un mismo archivo no es una buena idea. Es fácil combinar routers con otros routers.

Gracias a los tipos de literales plantilla de TypeScript 4.1, también podemos prefijar los procedimientos sin comprometer la seguridad de tipos.

Ejemplo práctico

Código de ejemplo

server.ts
ts
const createRouter = () => {
return trpc.router<Context>();
};
const posts = createRouter()
.mutation('create', {
input: z.object({
title: z.string(),
}),
resolve: ({ input }) => {
// ..
return {
id: 'xxxx',
...input,
};
},
})
.query('list', {
resolve() {
// ..
return [];
},
});
const users = createRouter().query('list', {
resolve() {
// ..
return [];
},
});
const appRouter = createRouter()
.merge('user.', users) // prefix user procedures with "user."
.merge('post.', posts); // prefix post procedures with "post."
server.ts
ts
const createRouter = () => {
return trpc.router<Context>();
};
const posts = createRouter()
.mutation('create', {
input: z.object({
title: z.string(),
}),
resolve: ({ input }) => {
// ..
return {
id: 'xxxx',
...input,
};
},
})
.query('list', {
resolve() {
// ..
return [];
},
});
const users = createRouter().query('list', {
resolve() {
// ..
return [];
},
});
const appRouter = createRouter()
.merge('user.', users) // prefix user procedures with "user."
.merge('post.', posts); // prefix post procedures with "post."