UNPKG

nestjs-prisma-base

Version:

A comprehensive NestJS package providing base classes, utilities, and decorators for building CRUD APIs with Prisma ORM integration, featuring pagination, search, filtering, relation loading, configurable DTOs, and modular composition capabilities.

56 lines (55 loc) 1.76 kB
export interface BasicSearchOptions { search?: string; searchFields?: string[]; filters?: Record<string, any>; orderBy?: Record<string, 'asc' | 'desc'>; } export type AdvancedFilterOperator = 'equals' | 'not' | 'contains' | 'startsWith' | 'endsWith' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'notIn' | 'isNull' | 'isNotNull'; export interface AdvancedFilter { operator: AdvancedFilterOperator; value?: any; } export interface RelationConfig { defaultIncludes?: Record<string, boolean | any>; availableIncludes?: string[]; maxDepth?: number; allowNested?: boolean; customIncludes?: Record<string, any>; } export interface RelationValidationResult { validatedIncludes: Record<string, boolean | any>; invalidKeys: string[]; depthExceeded: boolean; } export interface AdvancedSearchOptions extends BasicSearchOptions { where?: Record<string, any>; advancedFilters?: Record<string, AdvancedFilter>; logicalOperator?: 'AND' | 'OR'; include?: Record<string, boolean | any>; select?: Record<string, boolean>; requestedIncludes?: string[]; } export interface SearchConfig { defaultSearchFields: string[]; caseSensitive?: boolean; searchMode?: 'contains' | 'startsWith' | 'endsWith'; maxSearchFields?: number; allowedAdvancedFields?: string[]; maxAdvancedFilters?: number; } export interface SearchQuery { page?: number; limit?: number; search?: string; searchFields?: string; sortBy?: string; sortOrder?: 'asc' | 'desc'; include?: string; [key: string]: any; } export interface QueryBuilderResult { where?: Record<string, any>; include?: Record<string, boolean | any>; select?: Record<string, boolean>; orderBy?: any; }