nope-js-browser
Version:
NoPE Runtime for the Browser. For nodejs please use nope-js-node
41 lines (40 loc) • 1.76 kB
JavaScript
import { Bridge } from "./bridge";
import { IoHostLayer } from "./layers/IoHost";
import { IoSocketClientLayer, ioSocketServerLayer, MQTTLayer, } from "./layers/index.nodejs";
export const validLayers = {
event: Bridge,
"io-server": ioSocketServerLayer,
"io-client": IoSocketClientLayer,
"io-host": IoHostLayer,
mqtt: MQTTLayer,
};
export const layerDefaultParameters = {
amqp: "localhost",
"io-server": 7000,
"io-host": "http://localhost:7000",
"io-client": "http://localhost:7000",
mqtt: "mqtt://localhost:1883",
};
export function addLayer(communicationBridge, layer, parameter = null, logger = false, considerConnection = false, forwardData = true) {
// Assign the Default Setting for the Channel.
const params = parameter !== null ? parameter : layerDefaultParameters[layer];
switch (layer) {
case "event":
break;
case "io-client":
communicationBridge.addCommunicationLayer(new IoSocketClientLayer(params, logger), forwardData, considerConnection);
break;
case "io-server":
communicationBridge.addCommunicationLayer(new ioSocketServerLayer(params, logger), forwardData, considerConnection);
break;
case "io-host":
communicationBridge.addCommunicationLayer(new IoHostLayer(communicationBridge, params, logger), forwardData, considerConnection);
break;
case "mqtt":
communicationBridge.addCommunicationLayer(new MQTTLayer(params, logger), forwardData, considerConnection);
break;
}
// Now that we have added a connection, we will
// update the value.
communicationBridge.connected.forcePublish();
}