---
url: https://node-ts.github.io/bus/api/bus-core/classes/DefaultHandlerRegistry.md
---
[API reference](../../index.md) / [@node-ts/bus-core](../index.md) / DefaultHandlerRegistry

# Class: DefaultHandlerRegistry

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:23](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L23)

An internal singleton that contains all registrations of messages to functions that handle
those messages.

## Implements

* [`HandlerRegistry`](../interfaces/HandlerRegistry.md)

## Constructors

### Constructor

```ts
new DefaultHandlerRegistry(): DefaultHandlerRegistry;
```

#### Returns

`DefaultHandlerRegistry`

## Methods

### get()

```ts
get<MessageType>(loggerFactory, message): HandlerDefinition<MessageType>[];
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:78](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L78)

Gets all registered message handlers for a given message name

#### Type Parameters

| Type Parameter |
| ------ |
| `MessageType` *extends* [`MessageBase`](../type-aliases/MessageBase.md) |

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `loggerFactory` | [`LoggerFactory`](../type-aliases/LoggerFactory.md) | - |
| `message` | [`MessageBase`](../type-aliases/MessageBase.md) | A message that has been received from the bus |

#### Returns

[`HandlerDefinition`](../type-aliases/HandlerDefinition.md)<`MessageType`>\[]

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`get`](../interfaces/HandlerRegistry.md#get)

***

### getClassHandlers()

```ts
getClassHandlers(): Handler<MessageBase, MessageAttributes<MessageAttributeMap, MessageAttributeMap>>[];
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:154](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L154)

Gets a list of all class based handlers that have been registered

#### Returns

[`Handler`](../interfaces/Handler.md)<[`MessageBase`](../type-aliases/MessageBase.md), [`MessageAttributes`](../../bus-messages/interfaces/MessageAttributes.md)<[`MessageAttributeMap`](../../bus-messages/interfaces/MessageAttributeMap.md), [`MessageAttributeMap`](../../bus-messages/interfaces/MessageAttributeMap.md)>>\[]

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`getClassHandlers`](../interfaces/HandlerRegistry.md#getclasshandlers)

***

### getExternallyManagedTopicIdentifiers()

```ts
getExternallyManagedTopicIdentifiers(): string[];
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:139](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L139)

Retrieves an array of all topic arns that are managed externally but require subscribing to as there are
custom handlers that handle those messages.

#### Returns

`string`\[]

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`getExternallyManagedTopicIdentifiers`](../interfaces/HandlerRegistry.md#getexternallymanagedtopicidentifiers)

***

### getMessageConstructor()

```ts
getMessageConstructor<T>(messageName): 
  | ClassConstructor<T>
  | undefined;
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:126](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L126)

Returns the class that received messages are created from, for a message that has a handler
registration. That's the message class, or `Object` for a message declared with `defineCommand`
or `defineEvent`, whose messages are plain objects.

#### Type Parameters

| Type Parameter |
| ------ |
| `T` *extends* [`Message`](../../bus-messages/classes/Message.md) |

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `messageName` | `string` | Message to get a class constructor for |

#### Returns

| [`ClassConstructor`](../type-aliases/ClassConstructor.md)<`T`>
| `undefined`

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`getMessageConstructor`](../interfaces/HandlerRegistry.md#getmessageconstructor)

***

### getMessageNames()

```ts
getMessageNames(): string[];
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:122](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L122)

Retrieves a list of all messages that have handler registrations

#### Returns

`string`\[]

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`getMessageNames`](../interfaces/HandlerRegistry.md#getmessagenames)

***

### getResolvers()

```ts
getResolvers(): HandlerResolver[];
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:145](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L145)

Gets all registered message handler resolvers

#### Returns

[`HandlerResolver`](../interfaces/HandlerResolver.md)\[]

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`getResolvers`](../interfaces/HandlerRegistry.md#getresolvers)

***

### register()

```ts
register<TMessage>(messageType, handler): void;
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:40](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L40)

Registers that a function handles a particular message type. The message's name is read from the
static `NAME` of `messageType`, without constructing it.

#### Type Parameters

| Type Parameter |
| ------ |
| `TMessage` *extends* [`Message`](../../bus-messages/classes/Message.md) |

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `messageType` | [`MessageDeclaration`](../../bus-messages/type-aliases/MessageDeclaration.md)<`TMessage`> | The message class, or the definition from `defineCommand` or `defineEvent`, to handle |
| `handler` | [`HandlerDefinition`](../type-aliases/HandlerDefinition.md)<`TMessage`> | The function handler to dispatch messages to as they arrive |

#### Returns

`void`

#### Throws

MessageNameMissing if `messageType` has no static `NAME`

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`register`](../interfaces/HandlerRegistry.md#register)

***

### registerCustom()

```ts
registerCustom<TMessage>(handler, customResolver): void;
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:28](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L28)

#### Type Parameters

| Type Parameter |
| ------ |
| `TMessage` |

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `handler` | [`HandlerDefinition`](../type-aliases/HandlerDefinition.md)<`TMessage`> |
| `customResolver` | [`CustomResolver`](../interfaces/CustomResolver.md)<`TMessage`> |

#### Returns

`void`

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`registerCustom`](../interfaces/HandlerRegistry.md#registercustom)

***

### reset()

```ts
reset(): void;
```

Defined in: [packages/bus-core/src/handler/default-handler-registry.ts:149](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/handler/default-handler-registry.ts#L149)

Removes all handlers from the registry

#### Returns

`void`

#### Implementation of

[`HandlerRegistry`](../interfaces/HandlerRegistry.md).[`reset`](../interfaces/HandlerRegistry.md#reset)
