recursive-readdir-files

Node.js module to list all files in a directory or any subdirectories.
Installation
This package is ESM only: Node 12+ is needed to use it and it must be import instead of require.
npm install recursive-readdir-files
If you still want to use in CommonJS, you can use dynamic import() to load.
const recursiveReaddirFiles = await import('recursive-readdir-files');
const { getExt, recursiveReaddirFiles } = await (Function('return import("recursive-readdir-files")')()) as Promise<typeof import("recursive-readdir-files")>;
Usage
import recursiveReaddirFiles from 'recursive-readdir-files';
const files = await recursiveReaddirFiles(process.cwd(), {
ignored: /\/(node_modules|\.git)/
});
console.log(files);
Or
recursiveReaddirFiles(process.cwd(), {
ignored: /\/(node_modules|\.git)/
}, (filepath, state) => {
console.log(filepath);
console.log(state.isFile());
console.log(state.isDirectory());
console.log(state);
})
Options
export interface RecursiveReaddirFilesOptions {
ignored?: RegExp;
include?: RegExp;
exclude?: RegExp;
filter?: (item: IFileDirStat) => boolean;
}
Result
import fs from 'node:fs';
export interface IFileDirStat extends Partial<fs.Stats> {
name: string;
path: string;
ext?: string;
}
declare type Callback = (filepath: string, stat: IFileDirStat) => void;
export default function recursiveReaddirFiles(rootPath: string, options?: RecursiveReaddirFilesOptions, callback?: Callback): Promise<IFileDirStat[]>;
export { recursiveReaddirFiles };
export declare const getStat: (filepath: string) => Promise<IFileDirStat>;
export declare const getExt: (filePath: string) => string;
Contributors
As always, thanks to our amazing contributors!
Made with action-contributors.
License
Licensed under the MIT License.