agentsclimarketplace

Nestjs documentation

Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/nestjs-documentation

🧠 The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.

Install
npx -y skills add ComeOnOliver/skillshub --skill nestjs-documentation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Swagger automation and Generic response documentation. Use when generating OpenAPI/Swagger documentation or documenting NestJS API responses. (triggers: main.ts, **/*.dto.ts, DocumentBuilder, SwaggerModule, ApiProperty, ApiResponse)

SKILL.md

2.7 KB, as published. Nobody here has run it

OpenAPI & Documentation

Priority: P2 (MAINTENANCE)

Automated API documentation and OpenAPI standards.

  • Automation: ALWAYS use the Nest CLI Plugin (@nestjs/swagger/plugin).
    • Benefit: Auto-generates @ApiProperty for DTOs and response types. Reduces boilerplate by 50%.
    • Config: nest-cli.json -> "plugins": ["@nestjs/swagger"].
  • Versioning: Maintain separate Swagger docs for v1, v2 if breaking changes occur.

Response Documentation

  • Strictness: Every controller method must have @ApiResponse({ status: 200, type: UserDto }).
  • Generic Wrappers: Define ApiPaginatedResponse<T> decorators to document generic PageDto<T> returns properly (Swagger doesn't handle generics well by default).
    • Technique: Use ApiExtraModels + getSchemaPath() in the custom decorator to handle the generic T ref.

Advanced Patterns

  • Polymorphism: Use @ApiExtraModels and getSchemaPath for oneOf/anyOf union types.
  • File Uploads: Document multipart/form-data explicitly.
    • Decorator: @ApiConsumes('multipart/form-data').
    • Body: @ApiBody({ schema: { type: 'object', properties: { file: { type: 'string', format: 'binary' } } } }).
  • Authentication: Specify granular security schemes per route/controller.
    • Types: @ApiBearerAuth() or @ApiSecurity('api-key') (Must match DocumentBuilder().addBearerAuth()).
  • Enums: Force named enums for reusable schema references.
    • Code: @ApiProperty({ enum: MyEnum, enumName: 'MyEnum' }).

Operation Grouping

  • Tags: Mandatory @ApiTags('domains') on every Controller to group endpoints logically.

  • Multiple Docs: generate separate docs for different audiences (e.g. Public vs Internal).

    SwaggerModule.createDocument(app, config, { include: [PublicModule] }); // /api/docs
    SwaggerModule.createDocument(app, adminConfig, { include: [AdminModule] }); // /admin/docs
    

Self-Documentation

  • Compodoc: Use @compodoc/compodoc to generate static documentation of the module graph, services, and dependencies.
    • Use Case: New developer onboarding and architectural review.

Anti-Patterns

  • No missing @ApiResponse: Every controller method must declare its response type and status code.
  • No /docs in production: Disable Swagger in production to prevent API schema exposure.
  • No manual @ApiProperty everywhere: Use the Nest CLI Swagger plugin to auto-generate from DTOs.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.