UNPKG

@algochad/prisma-core

Version:

A comprehensive NestJS library that provides EF-Core-like operations using Prisma and GraphQL. Features LINQ-style query builders, advanced data manipulation, GraphQL integration with genql, and a unified API for both Prisma and GraphQL operations. Includ

81 lines (80 loc) 7.94 kB
import { IEnumerable, IQueryable, IAsyncEnumerable } from '../../collections'; import { PrismaSelectResult, PrismaIncludeResult } from './prisma-types'; export declare class PrismaUnifiedBuilder<TModel = unknown, TSelect = TModel, TWhereInput = any, TOrderByInput = any, TInclude = any, TSelectInput = any, TCreateInput = any, TUpdateInput = any, TWhereUniqueInput = any, TExpectedResult = Record<string, any>> { private readonly queryBuilder; private readonly mutationBuilder; constructor(prismaModel: any, modelName?: string); factory: () => PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, TExpectedResult>; Where(where: TWhereInput): this; Select<TExpectedType = any>(select: TSelectInput): PrismaUnifiedBuilder<TModel, TExpectedType, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, TExpectedType>; Select<TSelectFields extends TSelectInput>(select: TSelectFields): PrismaUnifiedBuilder<TModel, PrismaSelectResult<TModel, TSelectFields, any>, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, any>; Select<TSelectFields extends TSelectInput, TNewExpectedResult = TExpectedResult>(select: TSelectFields, expectedResult: TNewExpectedResult): PrismaUnifiedBuilder<TModel, PrismaSelectResult<TModel, TSelectFields, TNewExpectedResult>, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, TNewExpectedResult>; SelectAs<TSelectFields extends TSelectInput>(select: TSelectFields): UnifiedTypedSelector<TModel, TSelectFields, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; Include<TIncludeFields extends TInclude, TNewExpectedResult = TExpectedResult>(include: TIncludeFields, expectedResult?: TNewExpectedResult): PrismaUnifiedBuilder<TModel, PrismaIncludeResult<TSelect, TIncludeFields, TNewExpectedResult>, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, TNewExpectedResult>; OrderBy(orderBy: TOrderByInput): this; Take(n: number): this; Skip(n: number): this; ToEnumerable(): Promise<IEnumerable<TSelect>>; ToArray(): Promise<TSelect[]>; First(): Promise<TSelect | null>; FirstOrDefault(): Promise<TSelect | undefined>; Single(): Promise<TSelect | null>; Count(): Promise<number>; Exists(): Promise<boolean>; Any(): Promise<boolean>; Min(field: string): Promise<any>; Max(field: string): Promise<any>; Sum(field: string): Promise<number>; Avg(field: string): Promise<number>; Project<TResult>(selector: (item: TSelect) => TResult): Promise<IEnumerable<TResult>>; ToAsyncEnumerable(): Promise<IAsyncEnumerable<TSelect>>; AsAsyncEnumerable(): Promise<IAsyncEnumerable<TSelect>>; AsEnumerable(): Promise<IEnumerable<TSelect>>; ToEnumerableAsync(): Promise<IEnumerable<TSelect>>; ToArrayAsync(): Promise<TSelect[]>; Create(data: TCreateInput): Promise<TModel>; CreateMany(data: TCreateInput[]): Promise<{ count: number; }>; Update(where: TWhereUniqueInput, data: TUpdateInput): Promise<TModel>; UpdateMany(where: TWhereInput, data: TUpdateInput): Promise<{ count: number; }>; Delete(where: TWhereUniqueInput): Promise<TModel>; DeleteMany(where: TWhereInput): Promise<{ count: number; }>; BulkUpsert(records: Array<{ where: TWhereUniqueInput; create: TCreateInput; update: TUpdateInput; }>): Promise<TModel[]>; Transaction<T>(operation: (builder: PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>) => Promise<T>): Promise<T>; private getPrismaClient; private getModelName; AsQueryable(): IQueryable<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; ContextFactory(): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; Fresh(): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; New(): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereEquals(field: keyof TModel, value: string, caseSensitive?: boolean): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereContains(field: keyof TModel, value: string, caseSensitive?: boolean): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereStartsWith(field: keyof TModel, value: string, caseSensitive?: boolean): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereEndsWith(field: keyof TModel, value: string, caseSensitive?: boolean): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereIn(field: keyof TModel, values: any[]): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereNotIn(field: keyof TModel, values: any[]): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereGreaterThan(field: keyof TModel, value: any): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereGreaterThanOrEqual(field: keyof TModel, value: any): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereLessThan(field: keyof TModel, value: any): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereLessThanOrEqual(field: keyof TModel, value: any): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereBetween(field: keyof TModel, min: any, max: any): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereNull(field: keyof TModel): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; WhereNotNull(field: keyof TModel): PrismaUnifiedBuilder<TModel, TSelect, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput>; } declare class UnifiedTypedSelector<TModel, TSelectFields, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput> { private builder; private select; constructor(builder: PrismaUnifiedBuilder<TModel, any, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, any>, select: TSelectFields); As<TExpectedResult>(): PrismaUnifiedBuilder<TModel, PrismaSelectResult<TModel, TSelectFields, TExpectedResult>, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, TExpectedResult>; Inferred(): PrismaUnifiedBuilder<TModel, PrismaSelectResult<TModel, TSelectFields, any>, TWhereInput, TOrderByInput, TInclude, TSelectInput, TCreateInput, TUpdateInput, TWhereUniqueInput, any>; } export {};