Import from internal git
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
using System.Text;
|
||||
using Core;
|
||||
using Core.Events;
|
||||
using Core.Settings;
|
||||
using Core.Yaml;
|
||||
|
||||
namespace Generator.Infrastructure.OpenApi.Builders;
|
||||
|
||||
public class OpenApiJavascriptBuilder : AbstractBuilder<OpenApiYaml>
|
||||
{
|
||||
|
||||
private readonly JavascriptConfig _config;
|
||||
|
||||
public OpenApiJavascriptBuilder(JavascriptConfig config, DisplayEmitter emitter)
|
||||
: base(config.Invite, emitter)
|
||||
{
|
||||
_config = config;
|
||||
}
|
||||
|
||||
///<inheritdoc/>
|
||||
public override void Generate()
|
||||
{
|
||||
CheckForNullSpec();
|
||||
|
||||
GenerateOpenApi();
|
||||
|
||||
var outputFolder = new Location([_config.DockerRoot, _config.ClientFolder]);
|
||||
var specFile = new Location([_config.DockerRoot, _config.OpenApiSpecFile()]).ToString();
|
||||
|
||||
var stringBuilder = new StringBuilder();
|
||||
stringBuilder
|
||||
.Append($"docker run --rm -it -v {_config.LocalRoot}:{_config.DockerRoot} {_config.BuildImage} /bin/sh -c '")
|
||||
.Append($"npm run prepare-workspace -- --apiName={_config.PackageName} --apiVersion={_config.OpenApiVersion} ")
|
||||
.Append($"--apiFile={specFile} --registry={_config.Registry} && ")
|
||||
.Append("npm run package && ")
|
||||
.Append($"mkdir -p {outputFolder} && ")
|
||||
.Append($"cp -r dist/* {outputFolder}'");
|
||||
|
||||
var command = stringBuilder.ToString();
|
||||
|
||||
Executor.Register(command);
|
||||
}
|
||||
|
||||
///<inheritdoc/>
|
||||
public override void Build()
|
||||
=> throw new InvalidOperationException("Why the heck do you want to compile javascript code ?");
|
||||
|
||||
/// <summary>
|
||||
/// Registers the generation of the openapi spec file
|
||||
/// </summary>
|
||||
private void GenerateOpenApi()
|
||||
{
|
||||
CheckForNullSpec();
|
||||
|
||||
var specFile = new Location([_config.DockerRoot, _config.SpecFile]);
|
||||
var output = new Location([_config.DockerRoot, _config.OpenApiFolder()]);
|
||||
|
||||
var command = $"docker run --rm -it -v {_config.LocalRoot}:{_config.DockerRoot} {_config.GenerationImage} " +
|
||||
$"generate -g openapi-yaml -i {specFile} -o {output}";
|
||||
Executor.Register(command);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user