UNPKG

leds-spark-lib

Version:

Biblioteca de geração de código

56 lines (53 loc) 2.11 kB
import { expandToStringWithNL } from "../../../../../models/model.js"; import fs from "fs"; import path from "path"; export function generate(model, target_folder) { fs.writeFileSync(path.join(target_folder, `IBaseSecurityRepository.cs`), generateBaseSecurity(model)); fs.writeFileSync(path.join(target_folder, `IRoleRepository.cs`), generateRoleRepository(model)); fs.writeFileSync(path.join(target_folder, `IUserRepository.cs`), generateUserRepository(model)); } function generateUserRepository(model) { return expandToStringWithNL ` using ${model.configuration?.name}.Domain.Security.Account.Entities; namespace ${model.configuration?.name}.Domain.Interfaces.Security { public interface IUserRepository : IBaseSecurityRepository<User> { Task<User?> GetUserByEmailAsync(string email, CancellationToken cancellationToken); Task<User?> GetUserByCode(string code, CancellationToken cancellationToken); Task<User?> GetUserByPasswordCode(string code, CancellationToken cancellationToken); public Task<User?> GetUserByRefreshCode(Guid refreshToken, CancellationToken cancellationToken); Task<bool> AnyAsync(string email, CancellationToken cancelationToken); } } `; } function generateRoleRepository(model) { return expandToStringWithNL ` using ${model.configuration?.name}.Domain.Security.Account.Entities; namespace ${model.configuration?.name}.Domain.Interfaces.Security { public interface IRoleRepository : IBaseSecurityRepository<Role> { Task<Role> GetRoleByName(string name, CancellationToken cancelationToken); } } `; } function generateBaseSecurity(model) { return expandToStringWithNL ` using ${model.configuration?.name}.Domain.Security.Shared.Entities; namespace ${model.configuration?.name}.Domain.Interfaces.Security { public interface IBaseSecurityRepository<T> where T : Entity { void Create(T entity); void Update(T entity); void Delete(T entity); IQueryable<T> GetById(Guid id); IQueryable<T> GetAll(); } } `; } //# sourceMappingURL=generate.js.map