UNPKG

prisma-repo

Version:

Generating repository pattern using Prisma ORM faster and easier

84 lines (69 loc) 2.1 kB
//! Do not edit this file manually, it is generate by `prisma repo generator` import { PrismaClient, Prisma, {{ #prismaStructures }} {{ this }}, {{ /prismaStructures }} } from '@prisma/client'; import _ from 'lodash'; // eslint-disable-next-line @typescript-eslint/no-explicit-any export type AnyRecord = Record<string, any>; export type BaseOption<Include, Select> = { include?: Include; select?: Select; }; export type Find<Select, Include, Cursor, Order, Distinct> = BaseOption<Include, Select> & { cursor?: Cursor; take?: number; skip?: number; orderBy?: Prisma.Enumerable<Order>; distinct?: Distinct; }; export type CountArgs<Select, Cursor, Order, Distinct> = Omit< Find<Select, never, Cursor, Order, Distinct>, 'include' >; export type Aggregate<Cursor, Order, Distinct> = Omit< CountArgs<never, Cursor, Order, Distinct>, 'select' | 'distinct' >; export const prisma = new PrismaClient({ log: {{ log }}, }); export const models = _.omit(prisma, [ '$on', '$connect', '$disconnect', '$use', '$executeRaw', '$executeRawUnsafe', '$queryRaw', '$queryRawUnsafe', '$transaction', ]); export const MODELS_NAME = { {{ #modelsName }} {{ key }}: {{ value }}, {{ /modelsName }} } as const; // eslint-disable-next-line @typescript-eslint/ban-types export type ModelStructure = { {{ #modelStructure }} {{ key }}: {{ value }}; {{ /modelStructure}} }; export type ModelName = keyof ModelStructure; export type ModelScalarFields<T extends keyof ModelStructure> = Prisma.Enumerable< keyof ModelStructure[T] >; export type ModelDelegate = Prisma.RejectOnNotFound | Prisma.RejectPerOperation | undefined; export type ModelTypes = { {{ #modelTypes }} {{ key }}: { Where: {{ value.WhereInput }}; Select: {{ value.Select }}; Include: {{ value.Include }}; Create: {{ value.CreateInput }}; Update: {{ value.UpdateInput }}; Cursor: {{ value.WhereUniqueInput }}; Order: {{ value.OrderByWithRelationInput }}; Delegate: {{ value.Delegate }}<ModelDelegate>; GroupBy: {{ value.GroupByOutputType }}; }, {{ /modelTypes }} };