25 lines
685 B
JavaScript
25 lines
685 B
JavaScript
const { existsSync, mkdirSync } = require("fs");
|
|
const { resolve } = require('path');
|
|
const fs = require('fs').promises;
|
|
|
|
// https://stackoverflow.com/questions/5827612/node-js-fs-readdir-recursive-directory-search
|
|
async function getFiles(dir) {
|
|
const dirents = await fs.readdir(dir, { withFileTypes: true });
|
|
const files = await Promise.all(dirents.map((dirent) => {
|
|
const res = resolve(dir, dirent.name);
|
|
return dirent.isDirectory() ? getFiles(res) : res;
|
|
}));
|
|
return Array.prototype.concat(...files);
|
|
}
|
|
|
|
function createIfNotExists(dir) {
|
|
if(!existsSync(dir)) {
|
|
mkdirSync(dir, { recursive: true })
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
getFiles,
|
|
createIfNotExists
|
|
}
|