@onereach/orest-input-cli
Version:
The tool for creating, serving, and publishing OREST Inputs
26 lines (21 loc) • 670 B
JavaScript
const fs = require('fs');
const path = require('path');
function getFileList(item, filePaths = []) {
return new Promise((resolve, reject) => {
fs.lstat(item, function (err, stats) {
if (err) return reject(err);
if (!stats.isDirectory()) {
return resolve([...filePaths, item]);
}
fs.readdir(item, function (err, files) {
if (err) return reject(err);
Promise.all(
files.map(file => getFileList(path.join(item, file), filePaths))
).then(filePaths => {
resolve(filePaths.reduce((items, acc) => [...acc, ...items], []));
});
});
});
});
}
module.exports = getFileList;