const crypto = require('crypto'); const { open } = require('fs/promises'); 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); }); } async function md5(file) { if (file === undefined) { return; } let buffer; let filehandle; try { filehandle = await open(file); buffer = await filehandle.readFile(); } catch (error) { logger.error('encountered an error generating the md5 hash sum for file \'' + file + '\' > ' + error); } finally { await filehandle?.close(); } if (buffer === undefined) { return; } let md5 = crypto.createHash('md5'); md5.update(buffer); md5 = md5.digest('hex'); return md5; } module.exports = { isEnabled, isDisabled, isSet, isUnset, sleep, md5 }