Remove redundant parameter from attachPluginMessages

Remove the pluginInfo parameter from lib/plugin attachPluginMessages as
the plugin info object is available in the `.info` property of the
plugin.  While a plugin instance doesn't exist for the slave side and
was the reason for these to be separate arguments, I expect slave
plugins to be implemented eventually.
This commit is contained in:
Hornwitser committed 2021-02-17 21:21:18 +01:00
1 parent b7c7e79a86
commit f8153bd784
5 files changed
+17 -18

No files matched your search

+1 -1
View File
@@ -621,7 +621,7 @@ class Control extends libLink.Link {
*/
this.plugins = controlPlugins;
for (let controlPlugin of controlPlugins.values()) {
libPlugin.attachPluginMessages(this, controlPlugin.info, controlPlugin);
libPlugin.attachPluginMessages(this, controlPlugin);
}
/**
+8 -9
View File
@@ -418,19 +418,18 @@ class BaseControlPlugin {
/**
* Attach plugin messages
*
* Attaches all messages defined in the `.message` property of the
* `pluginInfo` passed with handlers taken from `pluin`.
* Attaches all messages defined in the `.info.message` property of the
* `plugin` passed with handlers taken from the `pluin`.
*
* @param {module:lib/link.Link} link - Link to attach handlers to.
* @param {object} pluginInfo - Plugin info object.
* @param {module:lib/plugin.BasePlugin} plugin -
* The instance of the plugin to use handlers from.
* The instance of the plugin attach messages and handlers from.
*/
function attachPluginMessages(link, pluginInfo, plugin) {
let messageDefinitions = pluginInfo.messages || [];
function attachPluginMessages(link, plugin) {
let messageDefinitions = plugin.info.messages || [];
for (let [name, messageFormat] of Object.entries(messageDefinitions)) {
if (messageFormat.plugin !== pluginInfo.name) {
throw new Error(`Type of ${name} message must start with "${pluginInfo.name}:"`);
if (messageFormat.plugin !== plugin.info.name) {
throw new Error(`Type of ${name} message must start with "${plugin.info.name}:"`);
}
let handler = name + messageFormat.handlerSuffix;
@@ -444,7 +443,7 @@ function attachPluginMessages(link, pluginInfo, plugin) {
} catch (err) {
if (err.code === "MISSING_LINK_HANDLER") {
err.plugin = pluginInfo.name;
err.plugin = plugin.info.name;
err.handler = handler;
}
+1 -1
View File
@@ -562,7 +562,7 @@ class BaseConnection extends libLink.Link {
super("master", target, connector);
libLink.attachAllMessages(this);
for (let masterPlugin of masterPlugins.values()) {
libPlugin.attachPluginMessages(this, masterPlugin.info, masterPlugin);
libPlugin.attachPluginMessages(this, masterPlugin);
}
}
+3 -3
View File
@@ -254,7 +254,7 @@ class Instance extends libLink.Link {
let instancePlugin = new InstancePluginClass(pluginInfo, this, slave);
this.plugins.set(pluginInfo.name, instancePlugin);
await instancePlugin.init();
libPlugin.attachPluginMessages(this, pluginInfo, instancePlugin);
libPlugin.attachPluginMessages(this, instancePlugin);
this.logger.info(`Loaded plugin ${pluginInfo.name} in ${Date.now() - pluginLoadStarted}ms`);
}
@@ -830,7 +830,7 @@ class InstanceConnection extends libLink.Link {
libLink.attachAllMessages(this);
for (let pluginInfo of slave.pluginInfos) {
libPlugin.attachPluginMessages(this, pluginInfo, null);
libPlugin.attachPluginMessages(this, { info: pluginInfo });
}
}
@@ -977,7 +977,7 @@ class Slave extends libLink.Link {
this.pluginInfos = pluginInfos;
for (let pluginInfo of pluginInfos) {
libPlugin.attachPluginMessages(this, pluginInfo, null);
libPlugin.attachPluginMessages(this, { info: pluginInfo });
}
this.config = slaveConfig;
+4 -4
View File
@@ -43,24 +43,24 @@ describe("lib/plugin", function() {
let mockLink = new libLink.Link("source", "target", new mock.MockConnector());
let mockEvent = new libLink.Event({ type: "test:test", links: ["target-source"] });
it("should accept pluginInfo without messages", function() {
libPlugin.attachPluginMessages(mockLink, {}, null);
libPlugin.attachPluginMessages(mockLink, { info: {} });
});
it("should attach handler for the given message", function() {
function mockEventEventHandler() { };
libPlugin.attachPluginMessages(
mockLink, { name: "test", messages: { mockEvent }}, { mockEventEventHandler }
mockLink, { mockEventEventHandler, info: { name: "test", messages: { mockEvent }}}
);
assert(mockLink._handlers.get("test:test_event"), "handler was not registered");
});
it("should throw if missing handler for the given message", function() {
assert.throws(
() => libPlugin.attachPluginMessages(mockLink, { name: "test", messages: { mockEvent }}, {}),
() => libPlugin.attachPluginMessages(mockLink, { info: { name: "test", messages: { mockEvent }}}),
new Error("Missing mockEventEventHandler on plugin test for test:test_event on source-target link")
);
});
it("should throw if message starts with the wrong prefix", function() {
assert.throws(
() => libPlugin.attachPluginMessages(mockLink, { name: "foo", messages: { mockEvent }}, {}),
() => libPlugin.attachPluginMessages(mockLink, { info: { name: "foo", messages: { mockEvent }}}),
new Error('Type of mockEvent message must start with "foo:"')
);
});