mirror of
https://github.com/serverless/serverless.git
synced 2025-12-08 19:46:03 +00:00
33 lines
770 B
JavaScript
33 lines
770 B
JavaScript
import path from 'path'
|
|
import fs from '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
|
|
}
|
|
|
|
export default walkDirSync
|