Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save pramoth/970e37095bd459b668993b8c3dcccfcb to your computer and use it in GitHub Desktop.
Save pramoth/970e37095bd459b668993b8c3dcccfcb to your computer and use it in GitHub Desktop.
<plugin>
<groupId>cz.habarta.typescript-generator</groupId>
<artifactId>typescript-generator-maven-plugin</artifactId>
<version>1.29.366</version>
<executions>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<jsonLibrary>jackson2</jsonLibrary>
<customTypeMappings>
<!-- แมปคลาสเหล่านี้เป็น any -->
<mapping>java.util.Date:any</mapping>
<mapping>java.time.LocalDate:any</mapping>
<mapping>java.time.LocalDateTime:any</mapping>
</customTypeMappings>
<classPatterns>
<!-- domain model ของเรา ที่ต้องการ gen-->
<pattern>th.co.geniustree.hitap.humanresources.model.**</pattern>
<pattern>th.co.geniustree.hitap.humanresources.dto.**</pattern>
<pattern>th.co.geniustree.hitap.humanresources.projection.**</pattern>
</classPatterns>
<classes>
<!-- รวมคลาสเหล่านี้จาก Spring data JPA ด้วย -->
<class>org.springframework.data.domain.Page</class>
<class>org.springframework.data.domain.Slice</class>
</classes>
<excludeClassPatterns>
<!-- คลาสที่เป็น JPA static metamodel เราไม่ต้องการ เนื่องจากใช้หลังบ้าน -->
<pattern>**.**_</pattern>
</excludeClassPatterns>
<excludeClasses>
<!-- คลาส Sort ของ Spring Data JPA เราก็ไม่เอา เนื่องจากเราใช้ get param -->
<class>org.springframework.data.domain.Sort</class>
<class>java.io.Serializable</class>
<class>java.lang.Iterable</class>
</excludeClasses>
<!-- ไฟล์ output -->
<outputFile>src/main/web/src/generated-model/model.d.ts</outputFile>
<!-- มีหลายแบบ ดูในเวบของ plugin -->
<outputKind>module</outputKind>
<!-- อันนี้สำคัญ เนื่องจากหากไม่ใช้ optional เราจะไม่สามารถ new/object literal ได้เลยถ้า properties ไม่ครบตาม interface ระบุ ก็เพราะมัน typesafe อ่ะนะ -->
<optionalProperties>all</optionalProperties>
</configuration>
</execution>
</executions>
</plugin>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment