UNPKG

@solid-nestjs/rest-api

Version:

solid-nestjs Rest-API utilities

57 lines 2.13 kB
import { Type } from '@nestjs/common'; import { type GroupByArgsFromConfig, type ClassOptions, type GroupByArgs, type FindArgs } from '@solid-nestjs/common'; /** * Extended configuration for REST API GroupByArgsFrom that includes class options */ export interface GroupByArgsFromConfigWithOptions extends Omit<GroupByArgsFromConfig, 'groupByFields'> { groupByFields?: string[] | Type<any>; groupByFieldsType?: Type<any>; options?: ClassOptions & { /** * Custom name for the GroupBy input type * @example 'ProductGroupByInput' instead of default 'GroupedProductArgsRequest' */ groupByInputTypeName?: string; }; } /** * Creates a GroupByArgsFrom mixin with REST API decorators. * This function extends the base GroupByArgsFrom functionality to include * proper Swagger decorators for REST APIs. * * @template T - The entity type (optional, for type inference) * @param config - Configuration with FindArgs type, fields, and optional class options * @returns A dynamically generated GroupBy class with REST API decorators * * @example * ```typescript * import { GroupByArgsFrom } from '@solid-nestjs/rest-api'; * * export class FindProductArgs extends FindArgsFrom({ * whereType: ProductWhere, * orderByType: ProductOrderBy * }) {} * * // Using field names * const ProductGroupByFromArgs = GroupByArgsFrom({ * findArgsType: FindProductArgs, * groupByFields: ['category', 'supplier', 'status'], * className: 'ProductGroupByFromFindArgs', * options: { * description: 'Group by fields for Product queries' * } * }); * * // Using generated fields class * const ProductGroupByFields = createGroupByFields(Product, {...}); * const ProductGroupByFromArgs = GroupByArgsFrom({ * findArgsType: FindProductArgs, * groupByFieldsType: ProductGroupByFields, * options: { * description: 'Group by fields for Product queries' * } * }); * ``` */ export declare function GroupByArgsFrom<T = any>(config: GroupByArgsFromConfigWithOptions): Type<GroupByArgs<T> & FindArgs<T>>; //# sourceMappingURL=groupby-args.mixin.d.ts.map