UNPKG

initrajs

Version:

⚡ InitraJS - JavaScript CLI Toolkit | Lightning-fast scaffolding for React, Next.js, Node.js with TypeScript | The future of JavaScript development | 10x faster than create-react-app | Ultimate developer productivity tool

74 lines (58 loc) 2.12 kB
export default `import { IsString, IsOptional, IsEnum, IsNotEmpty, MaxLength, MinLength } from 'class-validator'; export class Create{{name}}DTO { @IsNotEmpty({ message: 'Name is required' }) @IsString({ message: 'Name must be a string' }) @MinLength(3, { message: 'Name must be at least 3 characters' }) @MaxLength(50, { message: 'Name cannot exceed 50 characters' }) name: string; @IsOptional() @IsString({ message: 'Description must be a string' }) @MaxLength(500, { message: 'Description cannot exceed 500 characters' }) description?: string; @IsOptional() @IsEnum(['active', 'inactive'], { message: 'Status must be either active or inactive' }) status?: 'active' | 'inactive' = 'active'; // Add more fields as needed } export class Update{{name}}DTO { @IsOptional() @IsString({ message: 'Name must be a string' }) @MinLength(3, { message: 'Name must be at least 3 characters' }) @MaxLength(50, { message: 'Name cannot exceed 50 characters' }) name?: string; @IsOptional() @IsString({ message: 'Description must be a string' }) @MaxLength(500, { message: 'Description cannot exceed 500 characters' }) description?: string; @IsOptional() @IsEnum(['active', 'inactive'], { message: 'Status must be either active or inactive' }) status?: 'active' | 'inactive'; // Add more fields as needed } export interface Query{{name}}DTO { page?: number; limit?: number; sortBy?: 'name' | 'createdAt' | 'updatedAt'; sortOrder?: 'asc' | 'desc'; search?: string; status?: 'active' | 'inactive'; } export class Query{{name}}Params implements Query{{name}}DTO { @IsOptional() page?: number = 1; @IsOptional() limit?: number = 10; @IsOptional() @IsEnum(['name', 'createdAt', 'updatedAt']) sortBy?: 'name' | 'createdAt' | 'updatedAt' = 'createdAt'; @IsOptional() @IsEnum(['asc', 'desc']) sortOrder?: 'asc' | 'desc' = 'desc'; @IsOptional() @IsString() search?: string; @IsOptional() @IsEnum(['active', 'inactive']) status?: 'active' | 'inactive'; } `;