Kevoree :: Modeling :: J2TS :: Transpiler

Kevoree Modeling Java2TypeScript

License

License

GroupId

GroupId

org.kevoree.modeling.j2ts
ArtifactId

ArtifactId

transpiler
Last Version

Last Version

82
Release Date

Release Date

Type

Type

jar
Description

Description

Kevoree :: Modeling :: J2TS :: Transpiler
Kevoree Modeling Java2TypeScript

Download transpiler

How to add to project

<!-- https://jarcasting.com/artifacts/org.kevoree.modeling.j2ts/transpiler/ -->
<dependency>
    <groupId>org.kevoree.modeling.j2ts</groupId>
    <artifactId>transpiler</artifactId>
    <version>82</version>
</dependency>
// https://jarcasting.com/artifacts/org.kevoree.modeling.j2ts/transpiler/
implementation 'org.kevoree.modeling.j2ts:transpiler:82'
// https://jarcasting.com/artifacts/org.kevoree.modeling.j2ts/transpiler/
implementation ("org.kevoree.modeling.j2ts:transpiler:82")
'org.kevoree.modeling.j2ts:transpiler:jar:82'
<dependency org="org.kevoree.modeling.j2ts" name="transpiler" rev="82">
  <artifact name="transpiler" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.kevoree.modeling.j2ts', module='transpiler', version='82')
)
libraryDependencies += "org.kevoree.modeling.j2ts" % "transpiler" % "82"
[org.kevoree.modeling.j2ts/transpiler "82"]

Dependencies

compile (1)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-compiler jar 0.10.195

test (1)

Group / Artifact Type Version
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.
- This repository contains the legacy version of GreyCat. 
! DataThings crew is about to disclose a new, faster, ligher native GreyCat. Stay tuned and follow us on twitter/facebook or

Java To TypeScript Transpiler

This project is a transpiler able to transform your Java codebase to TypeScript and then to JavaScript to ultimatly run Java code in the browser.

NB: JDK 8 or below

What is it for ?

The goal of J2TS is to share a codebase between Java, TypeScript and Javascript. This is especially helpful for sharing domain classes, data structures, and complex algorithms.

What is it not for ?

The goal of J2TS is not to develop a UI in Java. There are better projects for this. J2TS focus on performance and readability of the generated TypeScript code.

Getting Started

The easiest way to get started with J2TS is using the maven plugin. Hereafter is a simple snippet of usage:

<plugin>
    <groupId>com.datathings</groupId>
    <artifactId>j2ts-mavenplugin</artifactId>
    <version>${j2ts.version}</version>
    <executions>
        <execution>
            <id>transpile</id>
            <goals>
                <goal>java2ts</goal>
            </goals>
            <configuration>
                <name>sample</name>
                <copyJRE>true</copyJRE>
            </configuration>
        </execution>
    </executions>
</plugin>

By default the Java source directory is src/main/java and the generated-sources is target/generated-sources/java2ts.

These values can be overriden as follows:

<source>${basedir}/../api/src/main/java</source>
<target>${basedir}/target/generated-sources</target>

Sample project

A full sample project is hosted here

This project can be compiled through the following command

mvn clean install

Make sure you have NodeJS, NPM and TypeScript installed on your system. To install TypeScript just tape the following command in your console:

npm i -g typescript

Then go to the target/classes directory and open the index.html in you browser to see how to use the generated code.

Limitations

Currently, in order to keep the JRE.js as lightweight as possible, only a subSet of the JRE is supported. For instance, we support most common structures sucj as ArrayList and HashMap, but not all advanced once such as ConcurrentQueue and so on. However, if you face a limitation due to the lake of one JRE class, don't worry this is very easy to extend.

In a nutshell, update the base JRE.TS file here:

transpiler/src/main/resources/java.ts

To add your class with the same name than in Java. Finally in case of inferred package please also update this class:

transpiler/src/main/java/java2typescript/helper/TypeHelper.java#L162

Finally to provide a new JRE class permanently, please do a push request.

org.kevoree.modeling.j2ts

Versions

Version
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49