serverless/lib/utils/fs/walk-dir-sync.js
2024-05-29 11:51:04 -04:00

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