From a32e84ef551ca861772d7514eae0ff9bbda6ca70 Mon Sep 17 00:00:00 2001 From: "Peter.Morton" Date: Sat, 7 Mar 2026 12:25:33 -0600 Subject: [PATCH] Add explicit logging for JS module loading in server.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enhanced logging to verify object capture from globalVariables/*.js files Changes to server.js loadGlobalVariables(): 1. Extract returnedObject explicitly before assignment 2. Add detailed logging showing: - type: typeof the returned value - isObject: boolean check if it's an object - keys: number of properties in the object Benefits: ✅ Verifies that vm.Script returns the object correctly ✅ Shows object has expected number of keys (11 functions) ✅ Confirms globalVariableContext[varName] receives the object ✅ Helpful for debugging module loading issues ✅ Makes the capture step more explicit and clear Logging output shows: "Loaded global functions: googleDriveAdapterHelper", "type":"object", "isObject":true, "keys":11 This confirms the return object from googleDriveAdapterHelper.js IS being added to globalVariableContext correctly! Pattern verification: - Line 60: const returnedObject = script.runInContext(context); - Line 61: globalVariableContext[varName] = returnedObject; - Result: globalVariableContext.googleDriveAdapterHelper = {11 functions} Testing: ✓ Server starts successfully ✓ Module loads with correct object type ✓ All 11 functions captured ✓ Object available in VM context ✓ proxy.js can call googleDriveAdapterHelper.generateRequestId() etc. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/server.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/server.js b/src/server.js index fbebf0d..6cbab1a 100644 --- a/src/server.js +++ b/src/server.js @@ -56,8 +56,16 @@ function loadGlobalVariables() { const code = readFileSync(join(globalDir, file), "utf-8"); const script = new vm.Script(code, { filename: file }); const context = vm.createContext({ ...globalVMContext, ...globalVariableContext }); - globalVariableContext[varName] = script.runInContext(context); - logger.info(`Loaded global functions: ${varName}`); + + // Execute script and capture returned object + const returnedObject = script.runInContext(context); + globalVariableContext[varName] = returnedObject; + + logger.info(`Loaded global functions: ${varName}`, { + type: typeof returnedObject, + isObject: typeof returnedObject === 'object' && returnedObject !== null, + keys: returnedObject ? Object.keys(returnedObject).length : 0 + }); }); logger.info(`Loaded ${jsonFiles.length + jsFiles.length} global variables`,