Skip to Content

@ApiFunctionSubscriber

Registers a class as a function-level subscriber for a specific entity. Subscribers receive hooks whenever observable services execute CRUD functions (before, after, error for create/update/delete/get/getList/getMany).

Signature

@ApiFunctionSubscriber<E extends IApiBaseEntity>({ entity, priority?, }: IApiFunctionSubscriberProperties<E>)

Options

OptionDescription
entityEntity the subscriber listens to. The subscriber is ignored for other entities.
priorityHigher numbers execute first. Defaults to 0. Use this to enforce deterministic ordering between multiple subscribers.

Usage steps

  1. Mark the target service with @ApiServiceObservable() so hooks are emitted.
  2. Extend ApiFunctionSubscriberBase<E> and override desired lifecycle methods (onBeforeCreate, onAfterUpdate, onAfterErrorDelete, etc.).
  3. Decorate the subscriber class with @ApiFunctionSubscriber.

Example

@Injectable() @ApiFunctionSubscriber<PostEntity>({ entity: PostEntity, priority: 50 }) export class PostSlugSubscriber extends ApiFunctionSubscriberBase<PostEntity> { async onBeforeCreate(context: TApiSubscriberFunctionBeforeCreateContext<PostEntity>) { context.result.body.slug = this.slugify(context.result.body.title); return context.result; } }
Last updated on