# Interceptors — NestJS: Scalable Node.js APIs बनाना

Source: https://www.skillbyai.com/hi/nestjs/nestjs-interceptors

> RxJS observables पर बने interceptors से logging, response mapping और अन्य cross-cutting logic जोड़ें।

## Interceptor लिखें

Interceptors `NestInterceptor` और `Observable` streams का उपयोग करके request/response को wrap करते हैं।

```typescript
import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Injectable()
export class TransformInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
    return next.handle().pipe(
      map(data => ({ data, timestamp: new Date() }))
    );
  }
}
```

## Interceptors लागू करें

Methods, classes पर या globally `@UseInterceptors()` उपयोग करें।

```typescript
@UseInterceptors(TransformInterceptor)
@Get()
findAll() {
  return [{ id: 1, name: 'Ada' }];
}

// output: { data: [...], timestamp: Date }
```
