nest-prisma-graphql-generator
v2.0.0
Published
Generate CRUD resolvers from GraphQL schema with NestJS and Prisma
Downloads
14
Maintainers
Readme
prisma.config.json
general
- Es un objeto que contiene features funcionales a nivel de proyecto
- scalars: Es un array de string que contiene los nombres de los scalars que se van a generar en el proyecto. Lista de scalars:
json
: Genera un scalar de tipo JSON compatible con Prisma.JsonValue
- scalars: Es un array de string que contiene los nombres de los scalars que se van a generar en el proyecto. Lista de scalars:
modules
- Es un objeto que se compone de 2 propiedades.
- La primera es
ignore
y la segunda espartial
. - En ambos casos son un array de string.
- En el caso de
ignore
se le pasa un array de nombres de los módulos que no se deben generar. - En el caso de
partial
se le pasa un objeto que contiene un array de nombres de sub carpetas de archivos que se van a generar consecutivamente por actualizaciones en los modelos de prisma.
- La primera es
source
- Aquí se trabaja con los modelos y resolvers que se generar en los módulos basados en prisma. Es un array de objetos con propiedades dinámicas compuesto por los módulos que se generan.
{
"user": {
"model": {
"hide": []
},
"resolvers": {
"public": []
}
}
}
]
model
tiene las siguientes propiedades:hide
: Es un array de strings que recibe los nombres de los campos que no se deben generar en una respuesta de la API. Esto termina generando un@HideField()
en el modelo de NestJS.
@HideField() password!: string;
field_m2m_name
: Es una propiedad opcional en el que se envía un objeto, las propiedades hacen referencia a las relaciones que existen contra otro modelo. Esta propiedad se usa en la totalidad de veces en modelos m2m de prisma que se han declarado explícitamente.
"field_m2m_name": { "app": "characters", "character": "apps" }
resolvers
tiene las siguientes propiedades:public
: Es un array de strings que recibe los prefijos de los métodos que se van a generar en el resolver. Por defecto todos son privados.- Los prefijos son:
findUnique
,findMany
,create
,update
,delete
,upsert
- Como resultado, los métodos se generar con un decorator llamado
BypassAuth
que permite que el método sea público.
- Los prefijos son:
<!-- prisma.config.json --> "resolvers": { "public": [ "findMany" ] } <!-- resolver.ts --> @BypassAuth() @Query(() => UserPaginated, { nullable: false }) findManyUsers(@Args() args: FindManyUserArgs) { return this.userService.findMany(args) }