🐷
Prisma + tRPCのAPIの返り値の型をZodスキーマに変換する
多くのサンプルでは、createTRPCRouterを使わない例であった。
createTRPCRouterはcreate-t3-stack@latest
の最初のテンプレートで使用されていた。
tRPCのバージョンアップによるもの?かで、ネット上の過去のサンプルコードと違い、困ったため共有する。
import { createTRPCRouter, publicProcedure } from "@/server/api/trpc";
import { z } from "zod";
export const TodoSchema = z.object({
id: z.string(),
title: z.string(),
createdAt: z.date(),
updatedAt: z.date(),
});
export const TodoListSchema = z.array(TodoSchema);
export const todoRouter = createTRPCRouter({
getAll: publicProcedure.query(async ({ ctx }) => {
const todoList = await ctx.prisma.todo.findMany();
const resultZodParse = TodoListSchema.parse(todoList);
return resultZodParse;
}),
})
Discussion