UNPKG

leds-spark-lib

Version:

Biblioteca de geração de código

41 lines (38 loc) 1.45 kB
import { expandToStringWithNL, toString, isLocalEntity, isModule } from "../../../../models/model.js"; import fs from "fs"; import path from "path"; export function generateContext(model, target_folder) { const modules = model.abstractElements.filter(isModule); const name = `${model.configuration?.name}`; fs.writeFileSync(path.join(target_folder, `AppDbContext.cs`), toString(generateAppDbContext(modules, name))); } function generateAppDbContext(modules, name) { return expandToStringWithNL ` using Microsoft.EntityFrameworkCore; using ${name}.Domain.Entities; using ${name}.Domain.Security.Account.Entities; namespace ${name}.Infrastructure.Context { public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.ApplyConfigurationsFromAssembly(GetType().Assembly); } public DbSet<User> Users { get; set; } public DbSet<Role> Roles { get; set; } = null!; ${generateDbSet(modules)} } }`; } function generateDbSet(modules) { let dbsets = ""; for (const mod of modules) { for (const cls of mod.elements.filter(isLocalEntity)) { dbsets += `public DbSet<${cls.name}> ${cls.name}s { get; set; } \n`; } } return dbsets; } //# sourceMappingURL=generateContext.js.map