Put instance runtime state into InstanceInfo class

Use the data class pattern for storing the instance data on the
controller.  Improves documentation for plugins trying to use it.
This commit is contained in:
Hornwitser committed 2023-02-24 02:00:12 +01:00
1 parent 6a2aaf3d26
commit 496ebd18a5
5 files changed
+57 -7

No files matched your search

+2 -1
View File
@@ -16,6 +16,7 @@ const libPrometheus = require("@clusterio/lib/prometheus");
const libUsers = require("@clusterio/lib/users");
const BaseConnection = require("./BaseConnection");
const InstanceInfo = require("./InstanceInfo");
const routes = require("./routes");
const strcmp = new Intl.Collator(undefined, { numerice: "true", sensitivity: "base" }).compare;
@@ -261,7 +262,7 @@ class ControlConnection extends BaseConnection {
};
instanceConfig.set("factorio.settings", settings);
let instance = { config: instanceConfig, status: "unassigned" };
let instance = new InstanceInfo({ config: instanceConfig, status: "unassigned" });
this._controller.instances.set(instanceId, instance);
await libPlugin.invokeHook(this._controller.plugins, "onInstanceStatusChanged", instance, null);
this._controller.addInstanceHooks(instance);