代码之家  ›  专栏  ›  技术社区  ›  Luisus

从Prisma 5客户端提取类型

  •  1
  • Luisus  · 技术社区  · 1 年前

    在Prisma 4上,生成的客户端文件( node_modules/.prisma/client/index.d.ts )包含具有以下语法的模型的类型:

    /**
     * Model User
     * 
     */
    export type User = {
      id: number
      name: string | null
    }
    
    /**
     * Model Post
     * 
     */
    export type Post = {
      id: number
      user_id: number | null
      content: string
    }
    

    这非常有用,因为使用节点脚本,我们可以将这些类型复制/粘贴到MD文件中以生成文档。

    现在,在Prisma 5上,将为Prisma客户端文件生成以下代码:

    /**
     * Model User
     * 
     */
    export type User = $Result.DefaultSelection<Prisma.$UserPayload>
    /**
     * Model Post
     * 
     */
    export type Post = $Result.DefaultSelection<Prisma.$PostPayload>
    
    ...
    
    export type $UserPayload<ExtArgs extends $Extensions.Args = $Extensions.DefaultArgs> = {
        name: "User"
        objects: {}
        scalars: $Extensions.GetResult<{
          id: number
          name: string | null
        }, ExtArgs["result"]["user"]>
        composites: {}
      }
    
    ...
    
    export type $PostPayload<ExtArgs extends $Extensions.Args = $Extensions.DefaultArgs> = {
        name: "Post"
        objects: {}
        scalars: $Extensions.GetResult<{
          id: number
          user_id: number | null
          content: string
        }, ExtArgs["result"]["post"]>
        composites: {}
      }
    
    

    问题是,这些类型不“人性化”,我们无法将它们复制/粘贴到MD文件中进行文档处理。

    有没有一种方法可以为Prisma 4中生成的模型生成简单的类型?

    提前谢谢。

    0 回复  |  直到 1 年前