A CLI tool to generate TypeScript interfaces from TypeORM entity classes.
Install the package as a development dependency in your project:
npm install --save-dev typeorm-entity-type-interface
Add a Script to Your package.json
"scripts": {
"generate-entity-interfaces": "typeorm-entity-type-interface -i ./src/entities -o ./src/interfaces/IEntities.ts"
}
npm run generate-interfaces
-i, --input <glob>
: (Required) Input directory containing TypeORM entities.
-o, --output <path>
: (Required) Output directory for generated interfaces.`
--no-prefix
: Do not prefix interface names with 'I'.
-v, --verbose
: Enable verbose output (enabled by default).
Generate interfaces from entities in ./src/entities/**.ts
and output them to ./src/interfaces/IEntities.ts
:
typeorm-entity-type-interface -i ./src/entities -o ./src/interfaces/IEntities.ts
-
Generates Interfaces: Creates TypeScript interfaces for each TypeORM entity.
-
Include Relations: Creates TypeScript interfaces for properties decorated with relation decorators (@OneToMany, @ManyToOne, etc.).
-
Dual Interfaces per Entity:
EntityName
: Properties excluding relations.EntityNameData
: Properties including relations.
-
Handles Relations: Relation properties are included in EntityNameData interfaces.
-
Verbosity: Provides verbose output by default.
Custom Types: Complex or custom property types may require additional handling.
Methods Ignored: Only class properties are converted; methods are ignored.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.