Files
inpx-web/server/core/utils.js
2022-08-17 20:47:34 +07:00

53 lines
1.1 KiB
JavaScript

const fs = require('fs-extra');
const path = require('path');
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function versionText(config) {
return `${config.name} v${config.version}, Node.js ${process.version}`;
}
async function findFiles(callback, dir, recursive = true) {
if (!(callback && dir))
return;
const files = await fs.readdir(dir, { withFileTypes: true });
for (const file of files) {
const found = path.resolve(dir, file.name);
if (file.isDirectory()) {
if (recursive)
await findFiles(callback, found);
} else {
await callback(found);
}
}
}
async function touchFile(filename) {
await fs.utimes(filename, Date.now()/1000, Date.now()/1000);
}
function hasProp(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
function freeMemory() {
if (global.gc) {
global.gc();
global.gc();
global.gc();
}
}
module.exports = {
sleep,
versionText,
findFiles,
touchFile,
hasProp,
freeMemory,
};