Skip to content

Commit 294e269

Browse files
KamilKamil
authored andcommitted
Merge branch 'RivaCode-message_pattern_string-key'
2 parents f3c28f5 + 00c9850 commit 294e269

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

packages/microservices/server/server.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Logger } from '@nestjs/common/services/logger.service';
22
import { loadPackage } from '@nestjs/common/utils/load-package.util';
3-
import { isFunction } from '@nestjs/common/utils/shared.utils';
4-
import { EMPTY as empty, Observable, Subscription, from as fromPromise, of } from 'rxjs';
3+
import { isFunction, isString } from '@nestjs/common/utils/shared.utils';
4+
import { EMPTY as empty, from as fromPromise, Observable, of, Subscription } from 'rxjs';
55
import { catchError, finalize } from 'rxjs/operators';
66
import { MessageHandlers } from '../interfaces/message-handlers.interface';
77
import { MicroserviceOptions, WritePacket } from './../interfaces';
@@ -10,6 +10,14 @@ export abstract class Server {
1010
protected readonly messageHandlers: MessageHandlers = {};
1111
protected readonly logger = new Logger(Server.name);
1212

13+
public addHandler(
14+
pattern: any,
15+
callback: (data) => Promise<Observable<any>>,
16+
) {
17+
const key = isString(pattern) ? pattern : JSON.stringify(pattern);
18+
this.messageHandlers[key] = callback;
19+
}
20+
1321
public getHandlers(): MessageHandlers {
1422
return this.messageHandlers;
1523
}
@@ -20,13 +28,6 @@ export abstract class Server {
2028
return this.messageHandlers[pattern] ? this.messageHandlers[pattern] : null;
2129
}
2230

23-
public addHandler(
24-
pattern: any,
25-
callback: (data) => Promise<Observable<any>>,
26-
) {
27-
this.messageHandlers[JSON.stringify(pattern)] = callback;
28-
}
29-
3031
public send(
3132
stream$: Observable<any>,
3233
respond: (data: WritePacket) => void,

packages/microservices/test/server/server.spec.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class TestServer extends Server {
1111
describe('Server', () => {
1212
const server = new TestServer();
1313
const callback = () => {},
14-
pattern = { test: 'test' };
14+
pattern = { test: 'test pattern' };
1515

1616
describe('add', () => {
1717
it(`should add handler as a stringified pattern key`, () => {
@@ -20,6 +20,12 @@ describe('Server', () => {
2020
const handlers = server.getHandlers();
2121
expect(handlers[JSON.stringify(pattern)]).to.equal(callback);
2222
});
23+
24+
it(`should add handler as string pattern key`, () => {
25+
server.addHandler(pattern.test, callback as any);
26+
const handlers = server.getHandlers();
27+
expect(handlers[pattern.test]).to.equal(callback);
28+
});
2329
});
2430
describe('send', () => {
2531
let stream$: Observable<string>;
@@ -73,9 +79,7 @@ describe('Server', () => {
7379
it('should returns Observable', async () => {
7480
const value = 100;
7581
expect(
76-
await server
77-
.transformToObservable(of(value))
78-
.toPromise(),
82+
await server.transformToObservable(of(value)).toPromise(),
7983
).to.be.eq(100);
8084
});
8185
});

0 commit comments

Comments
 (0)