java-model-to-typescript
v1.1.0
Published
Convert Java POJOs and model classes to TypeScript interfaces and types
Maintainers
Readme
Java Model to TypeScript
Convert Java POJOs, DTOs, entities, and model classes to TypeScript interfaces with ease. Perfect for teams working with Java backends and TypeScript frontends.
Features
- Model-Focused: Specifically designed for Java POJOs, DTOs, and entities
- Smart Type Mapping: Converts Java types to appropriate TypeScript equivalents
- Interface Generation: Creates clean TypeScript interfaces from Java models
- Comment Preservation: Maintains JavaDoc comments as TypeScript comments
- Auto-Discovery: Scan directories for model files automatically
- Highly Configurable: Control output format, optional properties, and more
- Batch Processing: Convert multiple model files at once
- Index Generation: Auto-generate index.ts for clean exports
Installation
npm install -g java-model-to-typescriptOr use locally in your project:
npm install --save-dev java-model-to-typescriptQuick Start
Initialize configuration:
java-model-to-ts initScan for Java model files:
java-model-to-ts scan ./src/main/java --models-onlyConvert your models:
java-model-to-ts convert
Perfect For
- REST API DTOs: Convert response/request objects
- JPA Entities: Generate TypeScript interfaces for database models
- Java POJOs: Any simple Java data classes
- Spring Boot Models: DTOs, entities, and model classes
- Microservice Contracts: Shared model definitions
Configuration
The java-model-to-ts.config.json file controls the conversion:
{
"sourceDir": "./src/main/java",
"outputDir": "./src/types",
"files": [
"com/example/dto/UserDto.java",
"com/example/entities/Product.java"
],
"options": {
"outputFormat": "interface",
"useOptionalProperties": true,
"preserveComments": true
}
}Configuration Options
- sourceDir: Root directory containing Java model files
- outputDir: Where to output TypeScript interfaces
- files: Array of Java model files to convert
- typeMapping: Map Java types to TypeScript types
- options:
outputFormat:'interface','type', or'both'useOptionalProperties: Use?for optional fieldspreserveComments: Keep JavaDoc commentsnullableAsOptional: Treat nullable fields as optionalgenerateIndexFile: Create index.ts with all exports
CLI Commands
java-model-to-ts init
Create a new configuration file.
java-model-to-ts init
java-model-to-ts init -o custom.config.jsonjava-model-to-ts scan [directory]
Scan for Java model files and generate config.
java-model-to-ts scan ./src/main/java --models-only
java-model-to-ts scan ./backend/models