chuck-catron/nestjs-assistant-rules icon
public
Published on 5/5/2025
NestJS-Assistant-Rules

Rules

rules:

  • name: NestJS structure rule: Always follow the standard NestJS structure: use modules, controllers, services, and providers. Keep each responsibility in its proper layer. globs: "**/*.ts"

  • name: TypeScript best practices rule: Always use TypeScript interfaces or classes for DTOs and response types. Use type aliases only for unions or simple types. globs: "**/*.ts"

  • name: Dependency injection rule: Always inject services using NestJS's constructor-based dependency injection. Avoid using manual instantiation or static classes. globs: "**/*.ts"

  • name: Exception handling rule: Use NestJS's built-in HttpException and ExceptionFilter classes to handle errors. Avoid using raw error throws without proper mapping. globs: "**/*.ts"

  • name: Testing patterns rule: In NestJS tests, use Jest's describe/it pattern. Use TestingModule and Test.createTestingModule() to set up unit tests with dependency injection. globs:

    • "src/**/*.spec.ts"
    • "tests/**/*.ts"
  • name: Logging rule: Use NestJS Logger for logging instead of console.log. Provide meaningful context in logs. globs: "**/*.ts"

  • name: Validation rule: Always use class-validator decorators (e.g., @IsString, @IsInt) on DTOs and enable validation pipes globally. globs: "**/*.ts"

  • name: Use NestJS CLI rule: Always use the NestJS CLI (e.g., nest generate, nest g) for generating modules, controllers, services, providers, and other scaffolding. Do not manually create files or boilerplate code. Ensure CLI-generated code follows the correct naming conventions and folder structure. globs: "**/*.ts"