There are some similiar libraries. But all of them use recursive function calls.
In asynchronous case it's all right, but in synchronous case it may cause Maximum call stack size exceeded.
This library use while
loop instead of recursive function calls, and call stack is safe.
npm install recursive-sync-readdir
import read from 'recursive-sync-readdir';
const files = read(
__dirname, // directory path
[ // exclude rules
/node_modules/, // match regular expression
'.git', // equals to string
path => path === 'dist', // filter function returns true
]
);