Skip to content

Commit

Permalink
Extend easer with the wsgw adapters (WebSocket server and WebSockets …
Browse files Browse the repository at this point in the history
…<-> NATS forwarding)
  • Loading branch information
tombenke committed Jun 18, 2018
1 parent 7fdb0cf commit f76782a
Show file tree
Hide file tree
Showing 10 changed files with 492 additions and 25 deletions.
2 changes: 1 addition & 1 deletion dist/adapters/webServer/index.js
Expand Up @@ -102,7 +102,7 @@ var startup = function startup(container, next) {
// Call next setup function with the context extension
next(null, {
webServer: {
server: server
server: httpInstance
}
});
});
Expand Down
12 changes: 7 additions & 5 deletions dist/index.js
Expand Up @@ -24,6 +24,8 @@ var _encpwd = require('./adapters/encpwd/');

var _encpwd2 = _interopRequireDefault(_encpwd);

var _npacWsgwAdapters = require('npac-wsgw-adapters');

var _webServer = require('./adapters/webServer/');

var _webServer2 = _interopRequireDefault(_webServer);
Expand Down Expand Up @@ -87,7 +89,7 @@ var startWebServer = exports.startWebServer = function startWebServer() {
var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;


var defaults = _lodash2.default.merge({}, _config2.default, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults);
var defaults = _lodash2.default.merge({}, _config2.default, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults, _npacWsgwAdapters.wsServer.defaults, _npacWsgwAdapters.wsPdmsGw.defaults);

// Use CLI to gain additional parameters, and command to execute

Expand All @@ -103,13 +105,13 @@ var startWebServer = exports.startWebServer = function startWebServer() {
var appAdapters = [];
var appTerminators = [];
if (config.webServer.usePdms) {
appAdapters = [_npac2.default.mergeConfig(config), _npac2.default.addLogger, _npacPdmsHemeraAdapter2.default.startup, _webServer2.default.startup];
appAdapters = [_npac2.default.mergeConfig(config), _npac2.default.addLogger, _npacPdmsHemeraAdapter2.default.startup, _webServer2.default.startup, _npacWsgwAdapters.wsServer.startup, _npacWsgwAdapters.wsPdmsGw.startup];

appTerminators = [_webServer2.default.shutdown, _npacPdmsHemeraAdapter2.default.shutdown];
appTerminators = [_npacWsgwAdapters.wsPdmsGw.shutdown, _npacWsgwAdapters.wsServer.shutdown, _webServer2.default.shutdown, _npacPdmsHemeraAdapter2.default.shutdown];
} else {
appAdapters = [_npac2.default.mergeConfig(config), _npac2.default.addLogger, _webServer2.default.startup];
appAdapters = [_npac2.default.mergeConfig(config), _npac2.default.addLogger, _webServer2.default.startup, _npacWsgwAdapters.wsServer.startup];

appTerminators = [_webServer2.default.shutdown];
appTerminators = [_npacWsgwAdapters.wsServer.shutdown, _webServer2.default.shutdown];
}

// Define the jobs to execute: hand over the command got by the CLI.
Expand Down
45 changes: 42 additions & 3 deletions dist/webServerCli.js
@@ -1,8 +1,11 @@
#!/usr/bin/env node

/*jshint node: true */
'use strict';

var _lodash = require('lodash');

var _lodash2 = _interopRequireDefault(_lodash);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var yargs = require('yargs');

var parse = function parse(defaults) {
Expand Down Expand Up @@ -41,6 +44,28 @@ var parse = function parse(defaults) {
desc: "NATS server URI used by the pdms adapter.",
type: 'string',
default: defaults.pdms.natsUri
})
// WebSocket related parameters
.option("forward", {
alias: "f",
desc: "Forwards messages among inbound and outbound topics",
type: 'boolean',
default: defaults.wsServer.forwardTopics
}).option("forwarderEvent", {
alias: "e",
desc: "The name of the event the server is listen to forward the incoming messages",
type: 'string',
default: defaults.wsServer.forwarderEvent
}).option("inbound", {
alias: "i",
desc: "Comma separated list of inbound NATS topics to forward through websocket",
type: 'string',
default: ""
}).option("outbound", {
alias: "o",
desc: "Comma separated list of outbound NATS topics to forward towards from websocket",
type: 'string',
default: ""
}).demandOption([]).showHelpOnFail(false, 'Specify --help for available options').help().parse(processArgv.slice(2));

var results = {
Expand All @@ -56,6 +81,20 @@ var parse = function parse(defaults) {
usePdms: argv.usePdms,
useCompression: argv.useCompression
},
wsServer: {
forwardTopics: argv.forward,
forwarderEvent: argv.forwarderEvent
},
wsPdmsGw: {
topics: {
inbound: argv.inbound != "" ? _lodash2.default.map(argv.inbound.split(','), function (t) {
return t.trim();
}) : [],
outbound: argv.outbound != "" ? _lodash2.default.map(argv.outbound.split(','), function (t) {
return t.trim();
}) : []
}
},
pdms: {
natsUri: argv.natsUri
}
Expand Down
38 changes: 35 additions & 3 deletions dist/webServerCli.spec.js
Expand Up @@ -10,6 +10,8 @@ var _npacPdmsHemeraAdapter = require('npac-pdms-hemera-adapter');

var _npacPdmsHemeraAdapter2 = _interopRequireDefault(_npacPdmsHemeraAdapter);

var _npacWsgwAdapters = require('npac-wsgw-adapters');

var _webServer = require('./adapters/webServer/');

var _webServer2 = _interopRequireDefault(_webServer);
Expand All @@ -33,7 +35,7 @@ describe('webServerCli', function () {
it('webServer without pdms', function (done) {
var processArgv = ['node', 'src/index.js', // 'server',
'-p', "3008", '-c', 'config.yml', '-r', '/tmp/restApi', '-s'];
var defaults = _lodash2.default.merge({}, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults);
var defaults = _lodash2.default.merge({}, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults, _npacWsgwAdapters.wsServer.defaults, _npacWsgwAdapters.wsPdmsGw.defaults);
var expected = {
command: {
name: 'server',
Expand All @@ -47,6 +49,16 @@ describe('webServerCli', function () {
usePdms: false,
useCompression: true
},
wsServer: {
forwardTopics: false,
forwarderEvent: "message"
},
wsPdmsGw: {
topics: {
inbound: [],
outbound: []
}
},
pdms: {
natsUri: "nats://demo.nats.io:4222"
}
Expand All @@ -60,7 +72,7 @@ describe('webServerCli', function () {
it('webServer with pdms, default NATS server', function (done) {
var processArgv = ['node', 'src/index.js', // 'server',
'-p', "3008", '-c', 'config.yml', '-r', '/tmp/restApi', '-u'];
var defaults = _lodash2.default.merge({}, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults);
var defaults = _lodash2.default.merge({}, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults, _npacWsgwAdapters.wsServer.defaults, _npacWsgwAdapters.wsPdmsGw.defaults);
var expected = {
command: {
name: 'server',
Expand All @@ -74,6 +86,16 @@ describe('webServerCli', function () {
usePdms: true,
useCompression: false
},
wsServer: {
forwardTopics: false,
forwarderEvent: "message"
},
wsPdmsGw: {
topics: {
inbound: [],
outbound: []
}
},
pdms: {
natsUri: "nats://demo.nats.io:4222"
}
Expand All @@ -87,7 +109,7 @@ describe('webServerCli', function () {
it('webServer with pdms, NATS server on localhost', function (done) {
var processArgv = ['node', 'src/index.js', // 'server',
'-p', "3008", '-c', 'config.yml', '-r', '/tmp/restApi', '-u', '-n', 'nats://localhost:4222'];
var defaults = _lodash2.default.merge({}, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults);
var defaults = _lodash2.default.merge({}, _webServer2.default.defaults, _npacPdmsHemeraAdapter2.default.defaults, _npacWsgwAdapters.wsServer.defaults, _npacWsgwAdapters.wsPdmsGw.defaults);
var expected = {
command: {
name: 'server',
Expand All @@ -101,6 +123,16 @@ describe('webServerCli', function () {
usePdms: true,
useCompression: false
},
wsServer: {
forwardTopics: false,
forwarderEvent: "message"
},
wsPdmsGw: {
topics: {
inbound: [],
outbound: []
}
},
pdms: {
natsUri: "nats://localhost:4222"
}
Expand Down

0 comments on commit f76782a

Please sign in to comment.