leds-spark-lib
Version:
Biblioteca de geração de código
56 lines (52 loc) • 2.13 kB
JavaScript
import { expandToString } from "../../../../../../models/model.js";
import fs from "fs";
import path from "path";
export function generate(model, target_folder, cls, relations) {
fs.writeFileSync(path.join(target_folder, `GetById${cls.name}Handler.cs`), generateHandler(model, cls));
fs.writeFileSync(path.join(target_folder, `GetById${cls.name}Command.cs`), generateCommand(model, cls, relations));
fs.writeFileSync(path.join(target_folder, `GetById${cls.name}Validator.cs`), generateValidator(model, cls));
}
function generateHandler(model, cls) {
return expandToString `
using AutoMapper;
using ${model.configuration?.name}.Application.DTOs.Entities.Request;
using ${model.configuration?.name}.Application.DTOs.Entities.Response;
using ${model.configuration?.name}.Application.Interfaces.Entities;
using ${model.configuration?.name}.Application.UseCase.BaseCase;
using ${model.configuration?.name}.Domain.Entities;
namespace ${model.configuration?.name}.Application.UseCase.Entities.${cls.name}Case.GetById
{
internal class GetById${cls.name}Handler : GetByIdHandler<I${cls.name}Service, GetById${cls.name}Command, ${cls.name}RequestDTO, ${cls.name}ResponseDTO, ${cls.name}>
{
public GetById${cls.name}Handler(I${cls.name}Service service, IMapper mapper) : base(service, mapper)
{
}
}
}
`;
}
function generateValidator(model, cls) {
return expandToString `
using FluentValidation;
namespace ${model.configuration?.name}.Application.UseCase.Entities.${cls.name}Case.GetById
{
public class GetById${cls.name}Validator : AbstractValidator<GetById${cls.name}Command>
{
public GetById${cls.name}Validator()
{
}
}
}`;
}
function generateCommand(model, cls, relations) {
return expandToString `
using ${model.configuration?.name}.Application.DTOs.Entities.Response;
using MediatR;
namespace ${model.configuration?.name}.Application.UseCase.Entities.${cls.name}Case.GetById
{
public record GetById${cls.name}Command(Guid Id) : IRequest<IQueryable<${cls.name}ResponseDTO>>
{
}
}`;
}
//# sourceMappingURL=generate.js.map