prisma-repo
Version:
Generating repository pattern using Prisma ORM faster and easier
84 lines (69 loc) • 2.1 kB
text/typescript
//! 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 }}
};