Skip to content
Snippets Groups Projects
Commit be371a20 authored by Benedikt Heinrichs's avatar Benedikt Heinrichs
Browse files

Also generate index file

parent 986652ba
No related branches found
No related tags found
1 merge request!1New: Create a Api Client Script
...@@ -58,10 +58,13 @@ namespace Coscine.CodeGen ...@@ -58,10 +58,13 @@ namespace Coscine.CodeGen
} }
var combinationFile = outputPath + "/apis.ts"; var combinationFile = outputPath + "/apis.ts";
var indexFile = outputPath + "/index.ts";
var combinationFileImports = new List<string>(); var combinationFileImports = new List<string>();
var combinationFileExports = new List<string>(); var combinationFileExports = new List<string>();
var concreteApiNames = new List<string>();
var first = true; var first = true;
var apiRegex = new Regex("(?<= )(.*?)(?= extends BaseAPI)"); var apiRegex = new Regex("(?<= )(.*?)(?= extends BaseAPI)");
...@@ -81,6 +84,7 @@ namespace Coscine.CodeGen ...@@ -81,6 +84,7 @@ namespace Coscine.CodeGen
foreach (var apiImplementation in apiImplementations) foreach (var apiImplementation in apiImplementations)
{ {
var concreteApiName = apiImplementation.ToString().Replace("class ", ""); var concreteApiName = apiImplementation.ToString().Replace("class ", "");
concreteApiNames.Add(concreteApiName);
combinationFileImports.Add($"import {{ {concreteApiName}Factory }} from './{directoryName}/api';"); combinationFileImports.Add($"import {{ {concreteApiName}Factory }} from './{directoryName}/api';");
if (first) if (first)
{ {
...@@ -92,6 +96,7 @@ namespace Coscine.CodeGen ...@@ -92,6 +96,7 @@ namespace Coscine.CodeGen
} }
combinationFileExports.Sort(); combinationFileExports.Sort();
concreteApiNames.Sort();
var combinationFileText = "import { AxiosInstance } from 'axios';\n\n"; var combinationFileText = "import { AxiosInstance } from 'axios';\n\n";
combinationFileText += string.Join('\n', combinationFileImports); combinationFileText += string.Join('\n', combinationFileImports);
...@@ -126,6 +131,20 @@ const getHostName = () => { ...@@ -126,6 +131,20 @@ const getHostName = () => {
combinationFileText += "\n };\n};\n\nexport default implementations;\n"; combinationFileText += "\n };\n};\n\nexport default implementations;\n";
await File.WriteAllTextAsync(combinationFile, combinationFileText); await File.WriteAllTextAsync(combinationFile, combinationFileText);
var indexFileText = @"import implementations from './apis';
import instance from './axios-basic';
const apis = implementations(instance);
";
foreach (var concreteApiName in concreteApiNames)
{
indexFileText += $"export const {concreteApiName} = apis.{concreteApiName};\n";
}
indexFileText += "\nexport default apis;\n";
await File.WriteAllTextAsync(indexFile, indexFileText);
} }
private static Task ExecuteCommand(string command) private static Task ExecuteCommand(string command)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment