From 425fdf607daa282ac8e964bf96230fefc417f95c Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Wed, 17 Aug 2022 01:15:35 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BD=D0=B5=D1=81=D0=BA=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=83?= =?UTF-8?q?=D1=82=D0=B8=D0=BB=D0=B8=D1=82=D0=B0=D1=80=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/utils.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/server/core/utils.js b/server/core/utils.js index f81ae0b..62f538d 100644 --- a/server/core/utils.js +++ b/server/core/utils.js @@ -1,7 +1,43 @@ +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); +} + module.exports = { + sleep, versionText, + findFiles, + touchFile, + hasProp, }; \ No newline at end of file