Add explicit logging for JS module loading in server.js

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>
This commit is contained in:
2026-03-07 12:25:33 -06:00
parent ab8e43e4ab
commit a32e84ef55

View File

@@ -56,8 +56,16 @@ function loadGlobalVariables() {
const code = readFileSync(join(globalDir, file), "utf-8"); const code = readFileSync(join(globalDir, file), "utf-8");
const script = new vm.Script(code, { filename: file }); const script = new vm.Script(code, { filename: file });
const context = vm.createContext({ ...globalVMContext, ...globalVariableContext }); 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`, logger.info(`Loaded ${jsonFiles.length + jsFiles.length} global variables`,