@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
39 lines (38 loc) • 3.11 kB
TypeScript
import { EApiRouteType } from '../../../../enum/decorator/api';
import { IApiBaseEntity } from '../../../../interface/api-base-entity.interface';
import { IApiControllerGetListQueryPlan } from '../../../../interface/class/api/controller/get-list/query';
import { IApiControllerIdentityPlan } from '../../../../interface/class/api/controller/identity-plan.interface';
import { IApiControllerReadPlan } from '../../../../interface/class/api/controller/read';
import { IApiControllerProperties } from '../../../../interface/decorator/api';
import { IApiEntity } from '../../../../interface/entity';
import { TApiControllerPropertiesRoute } from '../../../../type/decorator/api/controller';
/**
* Generates and registers Swagger documentation for DTOs.
* Creates or uses existing DTOs for request, query, body, and response,
* and ensures they're properly registered with Swagger for API documentation.
* @param {object} target - The target controller class
* @param {IApiEntity<E>} entity - The entity definition
* @param {IApiControllerProperties<E>} properties - Controller configuration properties
* @param {EApiRouteType} method - The type of route (CREATE, DELETE, GET, etc.)
* @param {TApiControllerPropertiesRoute<E, typeof method>} routeConfig - Route-specific configuration
* @param {IApiEntity<E>} entityMetadata - The entity metadata containing column information
* @param {IApiControllerGetListQueryPlan} [queryPlan] - Route-scoped plan used by dynamic QUERY DTO generation.
* @returns {void}
* @template E - The entity type
*/
export declare function ApiControllerWriteDtoSwagger<E extends IApiBaseEntity>(target: object, entity: IApiEntity<E>, properties: IApiControllerProperties<E>, method: EApiRouteType, routeConfig: TApiControllerPropertiesRoute<E, typeof method>, entityMetadata: IApiEntity<E>, queryPlan?: IApiControllerGetListQueryPlan): void;
/**
* Registers generated DTOs and Swagger parameters with an internal compiled read plan.
* @template E - Entity type
* @param {object} target - Controller class.
* @param {IApiEntity<E>} entity - Entity metadata.
* @param {IApiControllerProperties<E>} properties - Controller configuration.
* @param {EApiRouteType} method - Generated route type.
* @param {TApiControllerPropertiesRoute<E, typeof method>} routeConfig - Route configuration.
* @param {IApiEntity<E>} entityMetadata - Entity metadata used for DTO generation.
* @param {IApiControllerGetListQueryPlan} [queryPlan] - Internal compiled QUERY plan.
* @param {IApiControllerReadPlan} [readPlan] - Internal compiled PARAMETERS plan.
* @param {IApiControllerIdentityPlan} [identityPlan] - Internal GET identity alias plan.
* @returns {void}
*/
export declare function ApiControllerWriteDtoSwaggerWithReadPlan<E extends IApiBaseEntity>(target: object, entity: IApiEntity<E>, properties: IApiControllerProperties<E>, method: EApiRouteType, routeConfig: TApiControllerPropertiesRoute<E, typeof method>, entityMetadata: IApiEntity<E>, queryPlan?: IApiControllerGetListQueryPlan, readPlan?: IApiControllerReadPlan, identityPlan?: IApiControllerIdentityPlan): void;