UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

61 lines (58 loc) 3.29 kB
import '../../../enum/decorator/api/action.enum.js'; import '../../../enum/decorator/api/authentication-type.enum.js'; import '../../../enum/decorator/api/controller/get-list/query/filter/missing-behavior.enum.js'; import '../../../enum/decorator/api/controller/get-list/query/unlisted-fields.enum.js'; import '../../../enum/decorator/api/controller/relation-reference-shape.enum.js'; import '../../../enum/decorator/api/controller/request/target.enum.js'; import '../../../enum/decorator/api/controller/request/transformer-type.enum.js'; import '../../../enum/decorator/api/controller/response-target.enum.js'; import { EApiDtoType } from '../../../enum/decorator/api/dto-type.enum.js'; import '../../../enum/decorator/api/function/context-storage-kind.enum.js'; import '../../../enum/decorator/api/function/subscriber-transaction-expectation.enum.js'; import '../../../enum/decorator/api/function/transaction/event-status.enum.js'; import '../../../enum/decorator/api/function/transaction/failure-stage.enum.js'; import '../../../enum/decorator/api/function/transaction/mode.enum.js'; import '../../../enum/decorator/api/function/transaction/outcome.enum.js'; import '../../../enum/decorator/api/function/transaction/owner-kind.enum.js'; import '../../../enum/decorator/api/function/transaction/trace-type.enum.js'; import '../../../enum/decorator/api/function/type.enum.js'; import '../../../enum/decorator/api/on-type.enum.js'; import '../../../enum/decorator/api/property/data-type.enum.js'; import '../../../enum/decorator/api/property/date/identifier.enum.js'; import '../../../enum/decorator/api/property/date/type.enum.js'; import '../../../enum/decorator/api/property/desribe-type.enum.js'; import '../../../enum/decorator/api/property/number-type.enum.js'; import '../../../enum/decorator/api/property/string-type.enum.js'; import '../../../enum/decorator/api/route/subscriber-authorization-expectation.enum.js'; import { EApiRouteType } from '../../../enum/decorator/api/route/type.enum.js'; /** * Determines if a DTO should be generated for a given route method and DTO type. * Makes logical decisions based on combinations, for example: * - BODY DTOs only for CREATE/UPDATE routes * - QUERY DTOs only for GET_LIST routes * - RESPONSE DTOs for all routes except DELETE * @param {EApiRouteType} method - The API route type (CREATE, DELETE, GET, etc.) * @param {EApiDtoType} dtoType - The type of DTO (REQUEST, RESPONSE, etc.) * @returns {boolean} True if a DTO should be generated, false otherwise */ const DtoIsShouldBeGenerated = (method, dtoType) => { switch (dtoType) { case EApiDtoType.BODY: { return [EApiRouteType.CREATE, EApiRouteType.PARTIAL_UPDATE, EApiRouteType.UPDATE].includes(method); } case EApiDtoType.PARAMETERS: { return [EApiRouteType.DELETE, EApiRouteType.GET, EApiRouteType.PARTIAL_UPDATE, EApiRouteType.UPDATE].includes(method); } case EApiDtoType.QUERY: { return method === EApiRouteType.GET_LIST; } case EApiDtoType.RESPONSE: { return method !== EApiRouteType.DELETE; } default: { return false; } } }; export { DtoIsShouldBeGenerated }; //# sourceMappingURL=should-be-generated.utility.js.map