{"id":26406107,"url":"https://github.com/manland/j2ts","last_synced_at":"2025-03-17T17:18:28.935Z","repository":{"id":143800092,"uuid":"74913622","full_name":"manland/j2ts","owner":"manland","description":"A simple java to ts generator","archived":false,"fork":false,"pushed_at":"2018-11-06T12:08:02.000Z","size":35,"stargazers_count":7,"open_issues_count":5,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-06T17:01:47.950Z","etag":null,"topics":["build","cli","dto","java","js","js-api","ts"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manland.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-27T20:53:07.000Z","updated_at":"2024-12-23T04:28:29.000Z","dependencies_parsed_at":"2023-07-31T19:16:26.084Z","dependency_job_id":null,"html_url":"https://github.com/manland/j2ts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manland%2Fj2ts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manland%2Fj2ts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manland%2Fj2ts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manland%2Fj2ts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manland","download_url":"https://codeload.github.com/manland/j2ts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244022628,"owners_count":20385133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build","cli","dto","java","js","js-api","ts"],"created_at":"2025-03-17T17:18:28.434Z","updated_at":"2025-03-17T17:18:28.926Z","avatar_url":"https://github.com/manland.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# j2ts\n\n\u003e A simple java to ts generator, designed for DTO.\n\n* [Install](#install)\n* [Js Api](#js-api)\n* [CLI](#cli)\n* [Example](#example)\n* [Development](#development)\n* [Contribution](#contribution)\n\n## Install\n\n\u003e npm install j2ts\n\n_`j2ts` use `javap` to extract meta-data of your java classes. So, you need to have it in on your system (installed with jdk)._\n\n## Js Api\n\n```js\nj2ts(path, options)\n    .then(res =\u003e console.log(res));\n```\n\n* path: string = [glob](https://github.com/isaacs/node-glob#glob-primer) path to java.class(es)\n* options: object\n    * generateHasClass: boolean = optional, false by default, generate ts file with interface (default) or class\n    * dest: string = optional, null by default, destination path to put ts files, if not set, j2ts don't write files\n\nreturn a promise with an array of {name: className, str: resultTs}.\n\n## CLI\n\nAfter install, add a script in your `package.json` :\n\n```json\n{\n    \"scripts\": {\n        \"j2ts\": \"j2ts -f \\\"[glob]\\\" -d \\\"path\\\"\"\n    }\n}\n```\n\nAnd run `npm run j2ts`. To see all options run `j2ts --help`\n\n## Example\n\nIf you start with User java class :\n\n```java\npackage dto;\n\npublic class User {\n\n    private String username;\n    private Integer stats;\n\n    public User() {\n    }\n\n    public String getUsername() {\n            return username;\n        }\n\n        public void setUsername(String username) {\n            this.username = username;\n        }\n\n    public Integer getStats() {\n        return stats;\n    }\n\n    public void setStats(Integer stats) {\n        this.stats = stats;\n    }\n}\n```\n\nYou compile it with java :\n\n\u003e javac \"dto/User.java\"\n\nPass `dto/User.class` through `j2ts` :\n\n\u003e j2ts -f \"./dto/*.class\" -d \"./dto\"\n\nYou will obtain `dto/User.ts` :\n\n```ts\nexport interface User {\n\n    username: string;\n\n    stats: number;\n\n}\n```\n\nAnd an `index.ts` containing a reference to all exported members :\n\n```ts\nexport * from './User';\n```\n\nNow you can use it in your project when you request user from server :\n\n```ts\nimport {User} from './dto';\n\nfetch('myserver/user/1').then((user: User) =\u003e ...);\n```\n\nTest it against all your big, fat and complicated dto in real projects ;) And please, open issues if something goes wrong.\n\n## Development\n\n\u003e clone\n\n\u003e npm install\n\n\u003e npm run test\n\n## Contribution\n\nThis repository ❤ pull-request ;) Make sure no one else work on same feature by opening an issue!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanland%2Fj2ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanland%2Fj2ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanland%2Fj2ts/lists"}