पाठ 14 / 33
Custom Decorators
Reusable parameter या class-level logic के लिए अपने decorators बनाएँ।
Parameter decorator
Custom decorator का उपयोग करके request से specific values को extract करें।
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
export const User = createParamDecorator(
(data: unknown, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
return request.user;
}
);
// usage
@Get('profile')
getProfile(@User() user) {
return user;
}Method decorator
Methods को custom logic से mark करें—उदा. guards को skip करने के लिए @Public(), या role-based access के लिए @Roles()।
export const Public = () => SetMetadata('isPublic', true);
export const Roles = (...roles: string[]) => SetMetadata('roles', roles);
@Public()
@Get('health')
health() {
return { status: 'ok' };
}