qapinterface
Version:
Comprehensive API utilities for Node.js applications including authentication, security, request processing, and response handling with zero external dependencies
38 lines (32 loc) • 1.45 kB
JavaScript
/**
* Memory Monitor Starter
* Single Responsibility: Start memory monitoring ONLY
*/
const { createMemoryMonitor } = require('../utility/memoryMonitor'); // import factory for monitor instances
const { logError } = require('../utility/console-logger'); // use internal error logging
let activeMonitor = null; // holds running monitor instance
/**
* Starts periodic memory usage logging.
* @param {object} logger - The logger instance.
* @param {object} [options] - Monitoring options.
*/
function startMemoryMonitoring(logger, options = {}) {
console.log(`startMemoryMonitoring called`); // log function entry
try { // handle potential errors
if (!activeMonitor) activeMonitor = createMemoryMonitor(); // create monitor once
activeMonitor.attachLogger(logger); // attach provided logger
activeMonitor.start(options); // begin monitoring
} catch (error) { // catch runtime errors
logError('MEMORY_MONITOR', `Failed to start memory monitoring: ${error.message}`, { options }); // log error context
}
console.log(`startMemoryMonitoring completed`); // log function exit
}
function getActiveMonitor() {
console.log(`getActiveMonitor called`); // log function entry
console.log(`getActiveMonitor returning monitor`); // log before return
return activeMonitor; // expose current monitor
}
module.exports = {
startMemoryMonitoring, // export starter
getActiveMonitor // export monitor accessor for stopper
};