UNPKG

peregrine-cms-test-html

Version:

Test your peregrine site to see what is supported.

29 lines (27 loc) 762 B
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;