Custom Decorators
Purpose
Generate custom NestJS decorators for extracting common request data (user, tenant, actor) and adding metadata (roles, permissions, public).
When to Use
- •Creating reusable parameter decorators
- •Adding metadata to routes
- •Extracting request context
- •Reducing boilerplate in controllers
What It Generates
Directory Structure
code
apps/api/src/common/decorators/ ├── user.decorator.ts ├── tenant.decorator.ts ├── actor.decorator.ts ├── roles.decorator.ts ├── permissions.decorator.ts ├── public.decorator.ts └── index.ts
Patterns Enforced
Parameter Decorators
Use createParamDecorator from @nestjs/common:
- •Extract data from
ExecutionContext - •Type-safe return values
- •Support for WebSockets and GraphQL
Metadata Decorators
Use SetMetadata from @nestjs/common:
- •Store metadata for guards/interceptors
- •Composable decorators
- •Default values
Usage Example
bash
/skill decorator-custom --types='user,tenant,actor,roles,permissions,public'
Related Files
- •Auth Guards - Guards that use decorators
- •API Controller - Controllers with decorators