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-readdirimport 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
]
);