@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
63 lines (59 loc) • 3.51 kB
JavaScript
'use strict';
require('../../../enum/decorator/api/action.enum.js');
require('../../../enum/decorator/api/authentication-type.enum.js');
require('../../../enum/decorator/api/controller/get-list/query/filter/missing-behavior.enum.js');
require('../../../enum/decorator/api/controller/get-list/query/unlisted-fields.enum.js');
require('../../../enum/decorator/api/controller/relation-reference-shape.enum.js');
require('../../../enum/decorator/api/controller/request/target.enum.js');
require('../../../enum/decorator/api/controller/request/transformer-type.enum.js');
require('../../../enum/decorator/api/controller/response-target.enum.js');
var dtoType_enum = require('../../../enum/decorator/api/dto-type.enum.js');
require('../../../enum/decorator/api/function/context-storage-kind.enum.js');
require('../../../enum/decorator/api/function/subscriber-transaction-expectation.enum.js');
require('../../../enum/decorator/api/function/transaction/event-status.enum.js');
require('../../../enum/decorator/api/function/transaction/failure-stage.enum.js');
require('../../../enum/decorator/api/function/transaction/mode.enum.js');
require('../../../enum/decorator/api/function/transaction/outcome.enum.js');
require('../../../enum/decorator/api/function/transaction/owner-kind.enum.js');
require('../../../enum/decorator/api/function/transaction/trace-type.enum.js');
require('../../../enum/decorator/api/function/type.enum.js');
require('../../../enum/decorator/api/on-type.enum.js');
require('../../../enum/decorator/api/property/data-type.enum.js');
require('../../../enum/decorator/api/property/date/identifier.enum.js');
require('../../../enum/decorator/api/property/date/type.enum.js');
require('../../../enum/decorator/api/property/desribe-type.enum.js');
require('../../../enum/decorator/api/property/number-type.enum.js');
require('../../../enum/decorator/api/property/string-type.enum.js');
require('../../../enum/decorator/api/route/subscriber-authorization-expectation.enum.js');
var type_enum = require('../../../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 dtoType_enum.EApiDtoType.BODY: {
return [type_enum.EApiRouteType.CREATE, type_enum.EApiRouteType.PARTIAL_UPDATE, type_enum.EApiRouteType.UPDATE].includes(method);
}
case dtoType_enum.EApiDtoType.PARAMETERS: {
return [type_enum.EApiRouteType.DELETE, type_enum.EApiRouteType.GET, type_enum.EApiRouteType.PARTIAL_UPDATE, type_enum.EApiRouteType.UPDATE].includes(method);
}
case dtoType_enum.EApiDtoType.QUERY: {
return method === type_enum.EApiRouteType.GET_LIST;
}
case dtoType_enum.EApiDtoType.RESPONSE: {
return method !== type_enum.EApiRouteType.DELETE;
}
default: {
return false;
}
}
};
exports.DtoIsShouldBeGenerated = DtoIsShouldBeGenerated;
//# sourceMappingURL=should-be-generated.utility.js.map