UNPKG

@brakebein/prisma-generator-nestjs-dto

Version:

Generates DTO and Entity classes from Prisma Schema for NestJS

55 lines (54 loc) 2.9 kB
import type { DMMF } from '@prisma/generator-helper'; import { WritableDeep } from 'type-fest'; import type { TemplateHelpers } from './template-helpers'; import type { IClassValidator, IDecorators, ImportStatementParams, Model, ParsedField } from './types'; export declare const uniq: <T = any>(input: T[]) => T[]; export declare const concatIntoArray: <T = any>(source: T[], target: T[]) => void; export declare function concatUniqueIntoArray<T = any>(source: T[], target: T[]): void; export declare function concatUniqueIntoArray<T = { [key: string]: any; }>(source: T[], target: T[], prop: string): void; export declare const makeImportsFromPrismaClient: (fields: ParsedField[], prismaClientImportPath: string, importEnums?: boolean) => ImportStatementParams[]; export declare const makeCustomImports: (fields: ParsedField[]) => ImportStatementParams[]; export declare const mapDMMFToParsedField: (field: WritableDeep<DMMF.Field> | ParsedField, overrides?: Partial<ParsedField>, decorators?: IDecorators) => ParsedField; export declare const getRelationScalars: (fields: ParsedField[]) => Record<string, string[]>; interface GetRelationConnectInputFieldsParam { field: ParsedField; allModels: DMMF.Model[]; } export declare const getRelationConnectInputFields: ({ field, allModels, }: GetRelationConnectInputFieldsParam) => Set<DMMF.Field>; export declare const getRelativePath: (from: string, to: string) => string; interface GenerateRelationInputParam { field: ParsedField; model: Model; allModels: Model[]; templateHelpers: TemplateHelpers; preAndSuffixClassName: TemplateHelpers['createDtoName'] | TemplateHelpers['updateDtoName']; canCreateAnnotation: RegExp; canConnectAnnotation: RegExp; canUpdateAnnotation?: RegExp; canDisconnectAnnotation?: RegExp; } export declare const generateRelationInput: ({ field, model, allModels, templateHelpers: t, preAndSuffixClassName, canCreateAnnotation, canConnectAnnotation, canUpdateAnnotation, canDisconnectAnnotation, }: GenerateRelationInputParam) => { type: string; imports: ImportStatementParams[]; generatedClasses: string[]; apiExtraModels: string[]; classValidators: IClassValidator[]; }; interface GenerateUniqueInputParam { compoundName: string; fields: ParsedField[]; model: Model; templateHelpers: TemplateHelpers; } export declare const generateUniqueInput: ({ compoundName, fields, model, templateHelpers: t, }: GenerateUniqueInputParam) => { type: string; imports: ImportStatementParams[]; generatedClasses: string[]; apiExtraModels: string[]; classValidators: IClassValidator[]; }; export declare const mergeImportStatements: (first: ImportStatementParams, second: ImportStatementParams) => ImportStatementParams; export declare const zipImportStatementParams: (items: ImportStatementParams[]) => ImportStatementParams[]; export {};