12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import * as fs from 'fs';
- import * as path from 'path';
- /**
- * Recursively read the contents of a directory.
- *
- * @param targetDir Absolute or relative path of the directory to scan. All returned paths will be relative to this
- * directory.
- * @returns Array holding all relative paths
- * @deprecated This function will be removed in the next major version.
- */
- function deepReadDirSync(targetDir) {
- const targetDirAbsPath = path.resolve(targetDir);
- if (!fs.existsSync(targetDirAbsPath)) {
- throw new Error(`Cannot read contents of ${targetDirAbsPath}. Directory does not exist.`);
- }
- if (!fs.statSync(targetDirAbsPath).isDirectory()) {
- throw new Error(`Cannot read contents of ${targetDirAbsPath}, because it is not a directory.`);
- }
- // This does the same thing as its containing function, `deepReadDirSync` (except that - purely for convenience - it
- // deals in absolute paths rather than relative ones). We need this to be separate from the outer function to preserve
- // the difference between `targetDirAbsPath` and `currentDirAbsPath`.
- const deepReadCurrentDir = (currentDirAbsPath) => {
- return fs.readdirSync(currentDirAbsPath).reduce((absPaths, itemName) => {
- const itemAbsPath = path.join(currentDirAbsPath, itemName);
- if (fs.statSync(itemAbsPath).isDirectory()) {
- return absPaths.concat(deepReadCurrentDir(itemAbsPath));
- }
- absPaths.push(itemAbsPath);
- return absPaths;
- }, []);
- };
- return deepReadCurrentDir(targetDirAbsPath).map(absPath => path.relative(targetDirAbsPath, absPath));
- }
- export { deepReadDirSync };
- //# sourceMappingURL=utils.js.map
|