@brakebein/prisma-generator-nestjs-dto
Version:
Generates DTO and Entity classes from Prisma Schema for NestJS
55 lines (54 loc) • 2.9 kB
TypeScript
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 {};