A simple java to ts generator, designed for DTO.
npm install j2ts
j2ts
use javap
to extract meta-data of your java classes. So, you need to have it in on your system (installed with jdk).
j2ts(path, options)
.then(res => console.log(res));
- path: string = glob path to java.class(es)
- options: object
- generateHasClass: boolean = optional, false by default, generate ts file with interface (default) or class
- dest: string = optional, null by default, destination path to put ts files, if not set, j2ts don't write files
return a promise with an array of {name: className, str: resultTs}.
After install, add a script in your package.json
:
{
"scripts": {
"j2ts": "j2ts -f \"[glob]\" -d \"path\""
}
}
And run npm run j2ts
. To see all options run j2ts --help
If you start with User java class :
package dto;
public class User {
private String username;
private Integer stats;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getStats() {
return stats;
}
public void setStats(Integer stats) {
this.stats = stats;
}
}
You compile it with java :
javac "dto/User.java"
Pass dto/User.class
through j2ts
:
j2ts -f "./dto/*.class" -d "./dto"
You will obtain dto/User.ts
:
export interface User {
username: string;
stats: number;
}
And an index.ts
containing a reference to all exported members :
export * from './User';
Now you can use it in your project when you request user from server :
import {User} from './dto';
fetch('myserver/user/1').then((user: User) => ...);
Test it against all your big, fat and complicated dto in real projects ;) And please, open issues if something goes wrong.
clone
npm install
npm run test
This repository ❤ pull-request ;) Make sure no one else work on same feature by opening an issue!