目前,我正在开发一个api,它使用prisma提供数据。这个api被多个项目使用。在api中,我使用Prisma.ModelGetPayload生成类型来定义某些api响应的返回类型。
import { Prisma } from "@prisma/client";
export const minimalSelect = Prisma.validator<Prisma.ModelXYSelect>()({
id: true,
name: true
});
export type MinimalModelXY = Prisma.ModelXYGetPayload<{
select: typeof minimalSelect;
}>;或者可以简单地从prisma客户端导入枚举。
import { EnumXY } from "@prisma/client";这些枚举和类型定义依赖于api生成的Prisma客户机。
有些解决方案会将整个prisma客户端提取到npm包(请看这里)中,但是,这不是我想要做的。
是否可以将这些类型提取到npm包中,以便在多个项目之间共享它们而不提取整个prisma客户端?
发布于 2022-10-12 07:46:50
如果您想导出由Prisma生成的所有类型,可以在node_modules/.prisma/client/index.d.ts中找到所有这些类型。
您可以在npm包中导出这个文件,并在前端应用程序中使用它。
您可以使用的另一种方法是将schema.prisma发布到npm包中。然后,在您的另一个项目中,您可以从schema.prisma文件生成一个prisma客户端库,这样就不需要导出PrismaClient。
https://stackoverflow.com/questions/73852913
复制相似问题