# Class Hooks

Class
Module
import { Hooks } from "@tsed/core"
Source/packages/core/src/types/domain/Hooks.ts

# Overview

class Hooks {
    #private;
    has(event: string): boolean;
<span class="token function">on</span><span class="token punctuation">(</span>event<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> cb<span class="token punctuation">:</span> Function<span class="token punctuation">)</span><span class="token punctuation">:</span> this<span class="token punctuation">;</span>

<span class="token function">off</span><span class="token punctuation">(</span>event<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> cb<span class="token punctuation">:</span> Function<span class="token punctuation">)</span><span class="token punctuation">:</span> this<span class="token punctuation">;</span>

<span class="token function">emit</span><span class="token punctuation">(</span>event<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> args?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> callThis?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>

alter&lt;<a href="/api/security/passport/types/decorators/Arg.html"><span class="token">Arg</span></a><span class="token punctuation"> = </span><span class="token keyword">any</span><span class="token punctuation">,</span> AlteredArg<span class="token punctuation"> = </span><a href="/api/security/passport/types/decorators/Arg.html"><span class="token">Arg</span></a>&gt;<span class="token punctuation">(</span>event<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> value<span class="token punctuation">:</span> <a href="/api/security/passport/types/decorators/Arg.html"><span class="token">Arg</span></a><span class="token punctuation">,</span> args?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> callThis?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> AlteredArg<span class="token punctuation">;</span>

<span class="token function">asyncEmit</span><span class="token punctuation">(</span>event<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> args?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> callThis?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>

asyncAlter&lt;<a href="/api/security/passport/types/decorators/Arg.html"><span class="token">Arg</span></a><span class="token punctuation"> = </span><span class="token keyword">any</span><span class="token punctuation">,</span> AlteredArg<span class="token punctuation"> = </span><a href="/api/security/passport/types/decorators/Arg.html"><span class="token">Arg</span></a>&gt;<span class="token punctuation">(</span>event<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> value<span class="token punctuation">:</span> <a href="/api/security/passport/types/decorators/Arg.html"><span class="token">Arg</span></a><span class="token punctuation">,</span> args?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> callThis?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;AlteredArg&gt;<span class="token punctuation">;</span>
<span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>

}

# Members

#private;

has(event: string): boolean;

on(event: string, cb: Function): this;

Listen a hook event


off(event: string, cb: Function): this;

Remove a listener attached to an event


emit(event: string, args?: any[], callThis?: any): void;

Trigger an event and call listener.


alter<Arg = any, AlteredArg = Arg>(event: string, value: Arg, args?: any[], callThis?: any): AlteredArg;

Trigger an event, listener alter given value and return it.


asyncEmit(event: string, args?: any[], callThis?: any): Promise<void>;

Trigger an event and call async listener.


asyncAlter<Arg = any, AlteredArg = Arg>(event: string, value: Arg, args?: any[], callThis?: any): Promise<AlteredArg>;

Trigger an event, async listener alter given value and return it.


destroy(): void;