@fyunusa/osb
v1.0.2
Published
A TypeScript-based code generator for models, DTOs, entities, services, and controllers
Downloads
7
Maintainers
Readme
OSB Code Generator
A powerful and flexible code generation tool for building TypeScript backend applications with support for DTOs, Entities, Controllers, Services, and Enums. It also supports Swagger decorators and TypeORM integration.
Features
- Generate Entities with TypeORM decorators
- Generate DTOs with class-validator and optional Swagger decorators
- Generate Controllers and Services
- Auto-generate Enums for enum-based fields
- Supports arrays, optional fields, and various types (
string,number,boolean,date,uuid,json) - Flexible command-line options for generating Swagger-ready and TypeORM-ready code
Installation
yarn add @osb/generator
# or
npm install @osb/generatorUsage
...
1. Generate all files for a model
yarn osb generate all User --modelPath ./src/modules/userThis generates:
UserEntityinentities/UserDTOs(InputDto,UpdateDto,OutputDto) indtos/UserControllerincontrollers/UserServiceinservices/UserEnumsinenums/(if the model has enum fields)
2. Generate specific files
You can generate only the files you need by specifying the type:
Entity only:
yarn osb generate entity User --modelPath ./src/modules/user --use-swagger trueDTOs only:
yarn osb generate dto User --modelPath ./src/modules/user --use-swagger trueController only:
yarn osb generate controller User --modelPath ./src/modules/userService only:
yarn osb generate service User --modelPath ./src/modules/userEnums only:
yarn osb generate enums User --modelPath ./src/modules/user
You can combine these options with --use-swagger and --use-typeorm flags as needed.
3. Generate files with Swagger decorators
yarn osb generate all User --modelPath ./src/modules/user --use-swagger true- Adds
@ApiProperty()decorators for Swagger/OpenAPI support - Includes class-validator decorators (
@IsString(),@IsEnum(),@IsOptional(), etc.) - DTOs will now be Swagger-ready
4. Generate files with TypeORM integration
yarn osb generate all User --modelPath ./src/modules/user --use-swagger true --use-typeorm true- Generates TypeORM entities with proper
@Column,@PrimaryGeneratedColumn,@CreateDateColumn, and@UpdateDateColumndecorators - Enum fields are automatically imported from the corresponding enum files
- Compatible with Swagger-enabled DTOs
Supported Commands
You can use the following types with the generate command:
entitydtocontrollerserviceenumsall
Example:
yarn osb generate <type> <ModelName> --modelPath <path> --use-swagger true --use-typeorm trueModel Example
import { Model, Field, Validate } from "@osb/decorators";
export enum Roles {
ADMIN = "admin",
USER = "user",
GUEST = "guest",
}
@Model({ name: "User" })
export class User {
@Field({ primary: true, type: "uuid" })
id!: string;
@Field({ type: "string" })
name!: string;
@Validate({ rule: "required" })
@Field({ type: "string" })
email!: string;
@Field({ type: "enum", enum: Roles, isArray: true })
roles!: Roles[];
}Notes
- Enum fields are automatically mapped to
User<FieldName>Enumin DTOs and Entities. - Array enums are properly handled with
@IsArray()and@IsEnum(..., { each: true }). - Optional fields are marked with
?and@IsOptional()decorators. - Swagger integration requires the
--use-swagger trueflag. - TypeORM integration requires the
--use-typeorm trueflag.
