[STYLE] set all the typescript generation in a sub-folder
This commit is contained in:
parent
1fe3cc3523
commit
f3a9ebf5e1
@ -20,12 +20,21 @@ import java.util.UUID;
|
|||||||
import org.glassfish.jersey.media.multipart.ContentDisposition;
|
import org.glassfish.jersey.media.multipart.ContentDisposition;
|
||||||
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
|
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
|
||||||
import org.kar.archidata.catcher.RestErrorResponse;
|
import org.kar.archidata.catcher.RestErrorResponse;
|
||||||
import org.kar.archidata.externalRestApi.TsClassElement.DefinedPosition;
|
|
||||||
import org.kar.archidata.externalRestApi.model.ApiGroupModel;
|
import org.kar.archidata.externalRestApi.model.ApiGroupModel;
|
||||||
import org.kar.archidata.externalRestApi.model.ClassModel;
|
import org.kar.archidata.externalRestApi.model.ClassModel;
|
||||||
|
import org.kar.archidata.externalRestApi.typescript.TsApiGeneration;
|
||||||
|
import org.kar.archidata.externalRestApi.typescript.TsClassElement;
|
||||||
|
import org.kar.archidata.externalRestApi.typescript.TsClassElement.DefinedPosition;
|
||||||
|
import org.kar.archidata.externalRestApi.typescript.TsClassElementGroup;
|
||||||
|
|
||||||
public class TsGenerateApi {
|
public class TsGenerateApi {
|
||||||
|
/**
|
||||||
|
* Generate a full API tree for Typescript in a specific folder.
|
||||||
|
* This generate a folder containing a full API with "model" filder and "api" folder.
|
||||||
|
* The generation depend of Zod and can be strict compile.
|
||||||
|
* @param api Data model to generate the api
|
||||||
|
* @param pathPackage Path to store the api.
|
||||||
|
*/
|
||||||
public static void generateApi(final AnalyzeApi api, final String pathPackage) throws Exception {
|
public static void generateApi(final AnalyzeApi api, final String pathPackage) throws Exception {
|
||||||
final List<TsClassElement> localModel = generateApiModel(api);
|
final List<TsClassElement> localModel = generateApiModel(api);
|
||||||
final TsClassElementGroup tsGroup = new TsClassElementGroup(localModel);
|
final TsClassElementGroup tsGroup = new TsClassElementGroup(localModel);
|
||||||
@ -35,7 +44,7 @@ public class TsGenerateApi {
|
|||||||
}
|
}
|
||||||
// Generate index of model files
|
// Generate index of model files
|
||||||
createModelIndex(pathPackage, tsGroup);
|
createModelIndex(pathPackage, tsGroup);
|
||||||
|
|
||||||
for (final ApiGroupModel element : api.apiModels) {
|
for (final ApiGroupModel element : api.apiModels) {
|
||||||
TsApiGeneration.generateApiFile(element, pathPackage, tsGroup);
|
TsApiGeneration.generateApiFile(element, pathPackage, tsGroup);
|
||||||
}
|
}
|
||||||
@ -44,7 +53,7 @@ public class TsGenerateApi {
|
|||||||
createIndex(pathPackage);
|
createIndex(pathPackage);
|
||||||
copyResourceFile("rest-tools.ts", pathPackage + File.separator + "rest-tools.ts");
|
copyResourceFile("rest-tools.ts", pathPackage + File.separator + "rest-tools.ts");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void createIndex(final String pathPackage) throws IOException {
|
private static void createIndex(final String pathPackage) throws IOException {
|
||||||
final String out = """
|
final String out = """
|
||||||
/**
|
/**
|
||||||
@ -53,13 +62,13 @@ public class TsGenerateApi {
|
|||||||
export * from \"./model\";
|
export * from \"./model\";
|
||||||
export * from \"./api\";
|
export * from \"./api\";
|
||||||
export * from \"./rest-tools\";
|
export * from \"./rest-tools\";
|
||||||
|
|
||||||
""";
|
""";
|
||||||
final FileWriter myWriter = new FileWriter(pathPackage + File.separator + "index.ts");
|
final FileWriter myWriter = new FileWriter(pathPackage + File.separator + "index.ts");
|
||||||
myWriter.write(out);
|
myWriter.write(out);
|
||||||
myWriter.close();
|
myWriter.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void createResourceIndex(final String pathPackage, final List<ApiGroupModel> apiModels)
|
private static void createResourceIndex(final String pathPackage, final List<ApiGroupModel> apiModels)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
final StringBuilder out = new StringBuilder("""
|
final StringBuilder out = new StringBuilder("""
|
||||||
@ -81,7 +90,7 @@ public class TsGenerateApi {
|
|||||||
myWriter.write(out.toString());
|
myWriter.write(out.toString());
|
||||||
myWriter.close();
|
myWriter.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void createModelIndex(final String pathPackage, final TsClassElementGroup tsGroup)
|
private static void createModelIndex(final String pathPackage, final TsClassElementGroup tsGroup)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
final StringBuilder out = new StringBuilder("""
|
final StringBuilder out = new StringBuilder("""
|
||||||
@ -107,7 +116,7 @@ public class TsGenerateApi {
|
|||||||
myWriter.write(out.toString());
|
myWriter.write(out.toString());
|
||||||
myWriter.close();
|
myWriter.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<TsClassElement> generateApiModel(final AnalyzeApi api) throws Exception {
|
private static List<TsClassElement> generateApiModel(final AnalyzeApi api) throws Exception {
|
||||||
// First step is to add all specific basic elements the wrap correctly the model
|
// First step is to add all specific basic elements the wrap correctly the model
|
||||||
final List<TsClassElement> tsModels = new ArrayList<>();
|
final List<TsClassElement> tsModels = new ArrayList<>();
|
||||||
@ -212,9 +221,9 @@ public class TsGenerateApi {
|
|||||||
tsModels.add(new TsClassElement(model));
|
tsModels.add(new TsClassElement(model));
|
||||||
}
|
}
|
||||||
return tsModels;
|
return tsModels;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void copyResourceFile(final String name, final String destinationPath) throws IOException {
|
public static void copyResourceFile(final String name, final String destinationPath) throws IOException {
|
||||||
final InputStream ioStream = TsGenerateApi.class.getClassLoader().getResourceAsStream(name);
|
final InputStream ioStream = TsGenerateApi.class.getClassLoader().getResourceAsStream(name);
|
||||||
if (ioStream == null) {
|
if (ioStream == null) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package org.kar.archidata.externalRestApi;
|
package org.kar.archidata.externalRestApi.typescript;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
@ -12,7 +12,6 @@ import java.util.Set;
|
|||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import org.kar.archidata.dataAccess.DataExport;
|
import org.kar.archidata.dataAccess.DataExport;
|
||||||
import org.kar.archidata.externalRestApi.TsClassElement.DefinedPosition;
|
|
||||||
import org.kar.archidata.externalRestApi.model.ApiGroupModel;
|
import org.kar.archidata.externalRestApi.model.ApiGroupModel;
|
||||||
import org.kar.archidata.externalRestApi.model.ApiModel;
|
import org.kar.archidata.externalRestApi.model.ApiModel;
|
||||||
import org.kar.archidata.externalRestApi.model.ClassEnumModel;
|
import org.kar.archidata.externalRestApi.model.ClassEnumModel;
|
||||||
@ -21,6 +20,7 @@ import org.kar.archidata.externalRestApi.model.ClassMapModel;
|
|||||||
import org.kar.archidata.externalRestApi.model.ClassModel;
|
import org.kar.archidata.externalRestApi.model.ClassModel;
|
||||||
import org.kar.archidata.externalRestApi.model.ClassObjectModel;
|
import org.kar.archidata.externalRestApi.model.ClassObjectModel;
|
||||||
import org.kar.archidata.externalRestApi.model.RestTypeRequest;
|
import org.kar.archidata.externalRestApi.model.RestTypeRequest;
|
||||||
|
import org.kar.archidata.externalRestApi.typescript.TsClassElement.DefinedPosition;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package org.kar.archidata.externalRestApi;
|
package org.kar.archidata.externalRestApi.typescript;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
@ -1,4 +1,4 @@
|
|||||||
package org.kar.archidata.externalRestApi;
|
package org.kar.archidata.externalRestApi.typescript;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user