From aacbc1e99d681fa407b9cf78228d007797907208 Mon Sep 17 00:00:00 2001 From: Rene De Ren Date: Wed, 11 Mar 2026 14:59:35 +0100 Subject: [PATCH] Migrate _loadConfig to use ConfigManager.buildConfig() Replaces manual base config construction with shared buildConfig() method. Node now only specifies domain-specific config sections. Part of #1: Extract base config schema Co-Authored-By: Claude Opus 4.6 --- src/nodeClass.js | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/nodeClass.js b/src/nodeClass.js index ec80df7..32f1b90 100644 --- a/src/nodeClass.js +++ b/src/nodeClass.js @@ -1,4 +1,5 @@ const { Reactor_CSTR, Reactor_PFR } = require('./specificClass.js'); +const { configManager } = require('generalFunctions'); class nodeClass { @@ -70,20 +71,10 @@ class nodeClass { * @param {object} uiConfig Config set in UI in node-red */ _loadConfig(uiConfig) { - this.config = { - general: { - name: uiConfig.name || this.name, - id: this.node.id, - unit: null, - logging: { - enabled: uiConfig.enableLog, - logLevel: uiConfig.logLevel - } - }, - functionality: { - positionVsParent: uiConfig.positionVsParent || 'atEquipment', // Default to 'atEquipment' if not specified - softwareType: "reactor" // should be set in config manager - }, + const cfgMgr = new configManager(); + + // Build config: base sections + reactor-specific domain config + this.config = cfgMgr.buildConfig('reactor', uiConfig, this.node.id, { reactor_type: uiConfig.reactor_type, volume: parseFloat(uiConfig.volume), length: parseFloat(uiConfig.length), @@ -107,7 +98,7 @@ class nodeClass { parseFloat(uiConfig.X_TS_init) ], timeStep: parseFloat(uiConfig.timeStep) - } + }); } /**