const { spawn } = require('child_process'); function isEnabled(parameter) { return isSet(parameter?.enabled) && parameter.enabled === true; } function isDisabled(parameter) { return isSet(parameter?.enabled) && parameter.enabled === false; } function isSet(parameter) { return parameter !== undefined; } function isUnset(parameter) { return !isSet(parameter); } async function sleep(ms) { if (isNaN(ms)) { return; } return new Promise((resolve, reject) => { setTimeout(resolve, ms); }); } function restart() { logger.info('restarting...'); const args = process.argv; const cmd = args[0]; args.shift(); const newProcess = spawn(cmd, args, { detached: true, stdio: 'ignore' }); newProcess.unref(); newProcess.on('error', (error) => { logger.error('encountered an error restarting: ' + error); }); newProcess.on('spawn', () => { logger.warn('spawned process with pid \'' + newProcess.pid + '\''); process.exit(0); }); } module.exports = { isEnabled, isDisabled, isSet, isUnset, sleep, restart }