To produce TypeScript definitions using Maven from Kotlin DTO, you can use the kotlin2typescript-maven-plugin
.
Here are the steps:
pom.xml
file:<build>
<plugins>
<plugin>
<groupId>com.github.d3adspace.kotlin</groupId>
<artifactId>kotlin2typescript-maven-plugin</artifactId>
<version>2.5.8</version>
<executions>
<execution>
<id>generate-typescript</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>my-dto</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
configuration
section of the plugin:<plugin>
<groupId>com.github.d3adspace.kotlin</groupId>
<artifactId>kotlin2typescript-maven-plugin</artifactId>
<version>2.5.8</version>
<executions>
<execution>
<id>generate-typescript</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<dtoPackages>
<param>com.example.mydto</param>
</dtoPackages>
<generatedSourcesTargetPath>src/main/webapp/ts</generatedSourcesTargetPath>
</configuration>
</plugin>
mvn clean install
This will generate the TypeScript definitions in the src/main/webapp/ts
directory.
Note: The kotlin2typescript-maven-plugin
also supports generating Enum classes as TypeScript enums. You can configure this in the configuration
section of the plugin by setting the enumPackages
parameter with packages that contain your Enum classes.
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2023-03-06 11:00:00 +0000
Seen: 14 times
Last updated: Aug 17 '21
Why can't IntelliJ IDEA detect the Kotlin multiplatform library?
How to implement map function on Kotlin's Stateflow?
What is the correlation between coroutines and the Kotlin Gradle Plugin?
When the library throws a JsonDataException, why does the Kotlin Moshi adapter return null?
What are the typical approaches found in a Gradle build script?
Which languages are appropriate to use for a contemporary website?