メインコンテンツへスキップ
バージョン: 9.x

ルーターのマージ

非公式ベータ版翻訳

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

すべてのAPIコードを同じファイルに記述するのは適切ではありません。ルーターを他のルーターと簡単にマージできます。

TypeScript 4.1のテンプレートリテラル型のおかげで、型安全性を損なうことなく手続きにプレフィックスを付けることもできます。

動作例

コード例

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."