Skip to content

Commit 0ddb74e

Browse files
authored
♻️ Improve error messages (#22)
2 parents 15c28b2 + 55dc48b commit 0ddb74e

File tree

5 files changed

+25
-14
lines changed

5 files changed

+25
-14
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export class MultipleHandlersError extends Error {
2+
constructor(messageType: string) {
3+
super(
4+
`Multiple handlers are registred, use publish function instead (MESSAGE_TYPE: ${messageType})`,
5+
);
6+
}
7+
}

src/core/errors/multipleHandlersMessage.error.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
export class UnknownMessageError extends Error {
2-
constructor() {
3-
super(`The message doesn't have any corresponding handler`);
2+
constructor(messageType: string) {
3+
super(
4+
`The message doesn't have any corresponding handler (MESSAGE_TYPE: ${messageType})`,
5+
);
46
}
57
}

src/core/mediator.test.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Message } from './message';
44
import { MessageHandler } from './messageHandler';
55
import { clear, mediator } from './mediator';
66
import { UnknownMessageError } from './errors/unknownMessage.error';
7-
import { SendToMultipleHandlersError } from './errors/multipleHandlersMessage.error';
7+
import { MultipleHandlersError } from './errors/multipleHandlers.error';
88
import { should } from 'chai';
99
import { Middleware } from './middlewares';
1010

@@ -87,6 +87,9 @@ describe('mediator.send', () => {
8787

8888
// Assert
8989
actual.should.be.instanceOf(UnknownMessageError);
90+
actual.message.should.be.equal(
91+
`The message doesn't have any corresponding handler (MESSAGE_TYPE: CREATE_PERSON)`,
92+
);
9093
});
9194

9295
it('should throw error when sending a message through the mediator that can be handled with multiple handlers', async () => {
@@ -126,7 +129,10 @@ describe('mediator.send', () => {
126129
}
127130

128131
// Assert
129-
actual.should.be.instanceOf(SendToMultipleHandlersError);
132+
actual.should.be.instanceOf(MultipleHandlersError);
133+
actual.message.should.be.equal(
134+
`Multiple handlers are registred, use publish function instead (MESSAGE_TYPE: CREATE_PERSON)`,
135+
);
130136
});
131137
});
132138

@@ -213,6 +219,9 @@ describe('mediator.publish', () => {
213219

214220
// Assert
215221
actual.should.be.instanceOf(UnknownMessageError);
222+
actual.message.should.be.equal(
223+
`The message doesn't have any corresponding handler (MESSAGE_TYPE: CREATE_PERSON)`,
224+
);
216225
});
217226
});
218227

src/core/mediator.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Message } from './message';
22
import { MessageHandler } from './messageHandler';
33
import { MessageResult } from './messageResult';
4-
import { SendToMultipleHandlersError } from './errors/multipleHandlersMessage.error';
4+
import { MultipleHandlersError } from './errors/multipleHandlers.error';
55
import { UnknownMessageError } from './errors/unknownMessage.error';
66
import { AddOptions, Middleware, middlewares } from './middlewares';
77

@@ -19,7 +19,7 @@ const getHandlers = <TKey extends string, TMessage extends Message<TKey>>(
1919
messageType: TKey,
2020
): Array<MessageHandler<TMessage>> => {
2121
if (!registry.has(messageType)) {
22-
throw new UnknownMessageError();
22+
throw new UnknownMessageError(messageType);
2323
}
2424

2525
const handlers = registry.get(messageType) as Array<MessageHandler<TMessage>>;
@@ -33,7 +33,7 @@ const send = async <TMessage extends Message>({
3333
const handlers = getHandlers<typeof type, TMessage>(type);
3434

3535
if (handlers.length > 1) {
36-
throw new SendToMultipleHandlersError();
36+
throw new MultipleHandlersError(type);
3737
}
3838

3939
return handlers[0](data);

0 commit comments

Comments
 (0)