serverless/lib/utils/fs/walkDirSync.js
Mariusz Nowak 4944f471b1
Prettify
2019-06-26 12:43:01 +02:00

33 lines
796 B
JavaScript

'use strict';
const path = require('path');
const fs = require('fs');
function walkDirSync(dirPath, opts) {
const options = Object.assign(
{
noLinks: false,
},
opts
);
let filePaths = [];
const list = fs.readdirSync(dirPath);
list.forEach(filePathParam => {
let filePath = filePathParam;
filePath = path.join(dirPath, filePath);
const stat = options.noLinks ? fs.lstatSync(filePath) : fs.statSync(filePath);
// skipping symbolic links when noLinks option
if (options.noLinks && stat && stat.isSymbolicLink()) {
return;
} else if (stat && stat.isDirectory()) {
filePaths = filePaths.concat(walkDirSync(filePath, opts));
} else {
filePaths.push(filePath);
}
});
return filePaths;
}
module.exports = walkDirSync;