peregrine-cms-test-html
Version:
Test your peregrine site to see what is supported.
29 lines (27 loc) • 762 B
JavaScript
const resolve = require('path').resolve;
const fsPromises = require('fs').promises;
const { readdir } = fsPromises;
/**
* Gets all files under parent directory.
*
* @typedef GetFiles
* @param {string} dir - Parent directory.
*
* @yields {string} - If path is to a file, yields its path.
* @yields {GetFiles} - Recursively traverses through current node's children.
*
* @example
* getFiles( "Users/shane/samplesites/apple/jcr_root/apple/pages" );
*/
async function* getFiles(dir) {
const dirents = await readdir(dir, { withFileTypes: true });
for (const dirent of dirents) {
const res = resolve(dir, dirent.name);
if (dirent.isDirectory()) {
yield* getFiles(res);
} else {
yield res;
}
}
}
module.exports = getFiles;