rittenhop-dev/versions/5.94.2/node_modules/@sentry/node/esm/utils.js
2024-09-23 19:40:12 -04:00

44 lines
1.6 KiB
JavaScript

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