svws-transpile
Der Transpiler aus dem Teilprojekt SVWS-Transpiler hat im Wesentlichen zwei Aufgaben:
- die Übersetzung von Java-Code nach TypeScript
- das Generieren von TypeScript-Code für einen Client-Zugriff auf eine Server-REST-API, welche im Java-Code definiert ist
Das Teilprojekt ist in weiten Teilen so aufgebaut, dass es nicht direkt vom SVWS-Server abhängig ist, sondern auf den Code von diesem angewendet wird. Der Bezug zum SVWS-Server ist über das Gradle-Build-System gegeben, welches die Kommandozeilen-Applikation CoreTranspiler
aufruft. Dies ist so konfiguriert, dass
- der Java-Code aus dem Teilprojekt SVWS-Core übersetzt wird
- die Client-REST-API anhand der API-Definition aus dem Teilprojekt SVWS-OpenApi generiert wird
Das Ergebnis wird dann im npm-Modul core
in dem Teilprojekt SVWS-WebClient abgelegt, so dass dieses Modul als npm-Artefakt zur Verfügung steht.
Kommandozeilen-Anwendung CoreTranspiler
Die Klasse de.svws_nrw.transpiler.app.CoreTranspiler
stellt eine Kommandozeilen-Anwendung zum Aufruf des Transpilers zur Verfügung. Die Angabe von Quellcode-Dateien ist hierbei notwendig.
Parameter (kurz) | Parameter (lang) | Beschreibung |
---|---|---|
-j [JAVAFILES] | --java [JAVAFILES] | Eine Komma-separierte Liste der Java-Quellcode-Dateien für den Transpiler |
-a [APIFILES] | --api [APIFILES] | Eine Komma-separierte Liste der Server-Rest-API-Quellcode-Dateien für das Generieren des Client-API-Codes |
-jf [TEXTFILE] | --javafiles [TEXTFILE] | Eine Textdatei mit einer Komma-separierten Liste aller Java-Quellcode-Dateien für den Transpiler (nur wenn -j nicht gesetzt ist) |
-af [TEXTFILE] | --apifiles [TEXTFILE] | Eine Textdatei mit einer Komma-separierten Liste aller Server-Rest-API-Quellcode-Dateien für das Generieren des Client-API-Codes (nur wenn -a nicht gesetzt ist) |
-o [OUTDIR] | --output [OUTDIR] | Der Ziel-Ordner, in dem der erzeugte TypeScript-Code angelegt wird (Default: "build/ts") |
-t [TMPDIR] | --tmpdir [TMPDIR] | Ein Ordner für temporäre Dateien, wie z.B. die class-Dateien des Java-Compilers (Default: "build/tmp/transpiler") |
-i [PRAEFIX] | --ignore [PRAEFIX] | ggf. ein Präfix des Java-Packages, welches beim Aufbau der Ziel-Verzeichnisstruktur ignoriert werden soll (Default: "") |