Skip to content

Interceptor

@tsed/di

Usage

typescript
import { Interceptor } from "@tsed/di";

See /packages/di/src/common/decorators/interceptor.ts.

Overview

ts
function Interceptor(): ClassDecorator;

Description

Declare an interceptor class for cross-cutting concerns.

Registers a class as an interceptor provider that can modify method execution behavior. Interceptors must implement the InterceptorMethods interface. All interceptors are singleton-scoped and constructed once.

Usage

typescript
import {Interceptor, InterceptorContext, InterceptorMethods} from "@tsed/di";

@Interceptor()
export class LogInterceptor implements InterceptorMethods {
  intercept(context: InterceptorContext) {
    console.log("Before:", context.propertyKey);
    const result = context.next();
    console.log("After:", result);
    return result;
  }
}

// Use with @Intercept decorator
@Injectable()
class MyService {
  @Intercept(LogInterceptor)
  async fetchData() {
    return "data";
  }
}

Released under the MIT License.