leds-spark-lib
Version:
Biblioteca de geração de código
85 lines • 3.81 kB
JavaScript
import { expandToStringWithNL, capitalizeString } from "../../models/model.js";
import fs from "fs";
import path from "path";
import { generate as generateProperties } from "../../csharp-generator/minimal-API-generator/properties/generator.js";
export function generate(model, target_folder) {
const target_folder_properties = target_folder + "/Properties";
fs.mkdirSync(target_folder_properties, { recursive: true });
generateProperties(model, target_folder_properties);
fs.writeFileSync(path.join(target_folder, 'appsettings.json'), generateAppSettings(model));
fs.writeFileSync(path.join(target_folder, 'appsettings.Development.json'), generateAppSettingsDevelopment());
fs.writeFileSync(path.join(target_folder, model.configuration?.name + '.csproj'), generatecsproj());
fs.writeFileSync(path.join(target_folder, model.configuration?.name + '.csproj.user'), generatecsprojuser());
}
function generateAppSettings(model) {
return expandToStringWithNL `
{
"ConnectionStrings": {
"${capitalizeString(model.configuration?.name || "model")}Connection": "Server=sqlserver,1433;Database=${model.configuration?.database_name || "DefaultDB"};User Id=sa;Password=Senha@123;Trusted_Connection=False;TrustServerCertificate=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
`;
}
function generateAppSettingsDevelopment() {
return expandToStringWithNL `
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
`;
}
function generatecsproj() {
return expandToStringWithNL `<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>YOUR_SECRETS_USER_ID</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<StartupObject>Program</StartupObject>
<DockerComposeProjectPath>../docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.17" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="8.0.17" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.17" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.17" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.17" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.22.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.17">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.17">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations" />
</ItemGroup>
</Project>
`;
}
function generatecsprojuser() {
return expandToStringWithNL `
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ActiveDebugProfile>Container (Dockerfile)</ActiveDebugProfile>
</PropertyGroup>
</Project>`;
}
//# sourceMappingURL=helpers-generator.js.map