kannon/libs/util.js

59 lines
No EOL
1.2 KiB
JavaScript

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
}