10000 update package-lock · github1/meshage@88cc5ab · GitHub
[go: up one dir, main page]

Skip to content

Commit 88cc5ab

Browse files
github1github1
authored andcommitted
update package-lock
1 parent 1efb701 commit 88cc5ab

File tree

6 files changed

+86
-1
lines changed

6 files changed

+86
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@github1/meshage",
3-
"version": "0.3.6",
3+
"version": "0.3.9",
44
"description": "A simple peer-to-peer service mesh for HTTP based message handlers. Messages sent within the service mesh are consistently partitioned across members of the cluster.",
55
"main": "./src/index.js",
66
"types": "./src/index.d.ts",

src/runtime/rsocket/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './dnode-message-listener';
2+
export * from './dnode-service-invoker';

src/runtime/rsocket/rsocket-message-listener.test.js

Whitespace-only changes.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/* tslint:disable:no-unsafe-any typedef */
2+
import {
3+
NetworkMessageRouterListener,
4+
ServiceRouter,
5+
ClusterMembership,
6+
ClusterServiceEndpoint,
7+
Address
8+
} from '../../core';
9+
import dnode = require('dnode');
10+
import debug = require('debug');
11+
12+
const log : debug.IDebugger = debug('meshage');
13+
14+
export class DnodeMessageListener extends NetworkMessageRouterListener {
15+
16+
private server : { close() : void };
17+
18+
constructor(address : (string | number)) {
19+
super(address);
20+
}
21+
22+
public initWithAddress(address: Address, membership: ClusterMembership, serviceRouter: ServiceRouter) : Promise<ClusterServiceEndpoint> {
23+
return new Promise<ClusterServiceEndpoint>((resolve: (value: ClusterServiceEndpoint) => void) => {
24+
const d = dnode({
25+
handle : (message, cb) => {
26+
log('Handling message', message);
27+
serviceRouter
28+
.send(message)
29+
.then((response: {}) => {
30+
cb(response);
31+
})
32+
.catch((err: Error) => {
33+
cb({ error: err.message });
34+
});
35+
}
36+
}, {
37+
weak: false
38+
});
39+
this.server = d.listen(address.port, () => {
40+
log(`Started dnode service on port ${address.port}`);
41+
resolve({
42+
endpointType: 'dnode',
43+
description: `${address.host}:${address.port}`
44+
});
45+
});
46+
});
47+
}
48+
49+
public stop() {
50+
this.server.close();
51+
}
52+
53+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const DnodeServiceInvoker = require('./dnode-service-invoker').DnodeServiceInvoker;
2+
3+
describe('DnodeServiceInvoker', () => {
4+
describe('handles', () => {
5+
it('returns true for dnode endpoints', () => {
6+
expect(new DnodeServiceInvoker().handles({
7+
stream: 'some-stream',
8+
endpoints: [{
9+
endpointType: 'dnode',
10+
description: ''
11+
}]
12+
})).toBe(true);
13+
});
14+
it('returns false for non-dnode endpoints', () => {
15+
expect(new DnodeServiceInvoker().handles({
16+
stream: 'some-stream',
17+
endpoints: [{
18+
endpointType: 'http',
19+
description: ''
20+
}]
21+
})).toBe(false);
22+
});
23+
it('returns false for empty endpoints', () => {
24+
expect(new DnodeServiceInvoker().handles({
25+
stream: 'some-stream',
26+
endpoints: []
27+
})).toBe(false);
28+
});
29+
});
30+
});

src/runtime/rsocket/rsocket-service-invoker.ts

Whitespace-only changes.

0 commit comments

Comments
 (0)
0