2022-06-02 15:27:43 +02:00
|
|
|
const crypto = require('crypto');
|
|
|
|
const { open } = require('fs/promises');
|
|
|
|
|
2022-04-14 14:23:41 +02:00
|
|
|
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);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2022-06-02 15:27:43 +02:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2022-04-14 14:23:41 +02:00
|
|
|
module.exports = {
|
|
|
|
isEnabled,
|
|
|
|
isDisabled,
|
|
|
|
isSet,
|
|
|
|
isUnset,
|
2022-06-02 15:27:43 +02:00
|
|
|
sleep,
|
|
|
|
md5
|
2022-04-14 14:23:41 +02:00
|
|
|
}
|