UNPKG

@velopays/prisma-crud-generator

Version:

Generate CRUD operations and tests from Prisma models for NestJS

95 lines 2.44 kB
export interface GeneratorConfig { prismaSchemaPath: string; outputPath: string; apiPrefix?: string; swaggerEnabled?: boolean; customTemplatesPath?: string; schemaName?: string; clientPath?: string; generateCommonFiles?: boolean; generateRootModules?: boolean; imports?: { apiResponseDto?: string; jwtAuthGuard?: string; permissionGuard?: string; requirePermission?: string; permissionTypes?: string; baseQueryDto?: string; prismaService?: string; }; includeRelationsInCreateDto?: boolean; includeRelationsInQueryDto?: boolean; schemaMap?: Record<string, string>; } export interface ModelInfo { name: string; pluralName: string; kebabName: string; pascalName: string; camelName: string; fields: FieldInfo[]; relations: RelationInfo[]; hasCompositeId: boolean; compositeIdFields?: string[]; uniqueFields: UniqueFieldInfo[]; indexes: IndexInfo[]; } export interface FieldInfo { name: string; type: string; kind?: string; isList: boolean; isRequired: boolean; isUnique: boolean; isId: boolean; isUpdatedAt: boolean; isCreatedAt: boolean; default?: any; documentation?: string; validations: ValidationInfo[]; } export interface RelationInfo { name: string; type: string; isList: boolean; isRequired: boolean; relatedModel: string; foreignKeys?: string[]; references?: string[]; } export interface ValidationInfo { type: string; value?: any; } export interface UniqueFieldInfo { name: string; fields: string[]; isComposite: boolean; } export interface IndexInfo { name?: string; fields: string[]; type?: 'UNIQUE' | 'NORMAL' | 'FULLTEXT'; isComposite: boolean; } export interface TemplateData extends ModelInfo { imports: ImportInfo[]; apiPrefix: string; swaggerEnabled: boolean; schemaName: string; apiResponseDtoPath: string; jwtAuthGuardPath: string; permissionGuardPath: string; requirePermissionDecoratorPath: string; permissionTypesPath: string; baseQueryDtoPath: string; prismaServicePath: string; includeRelationsInCreateDto: boolean; includeRelationsInQueryDto: boolean; schemaMap?: Record<string, string>; } export interface ImportInfo { name: string; from: string; } //# sourceMappingURL=types.d.ts.map