Sfoglia il codice sorgente

Добавил несколько утилитарных функций

Book Pauk 2 anni fa
parent
commit
425fdf607d
1 ha cambiato i file con 36 aggiunte e 0 eliminazioni
  1. 36 0
      server/core/utils.js

+ 36 - 0
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,
 };