UNPKG

@avdl/folder-walker

Version:

A powerful, fluent, and configurable directory traversal utility for Node.js with TypeScript support

44 lines (43 loc) 1.38 kB
/// <reference types="node" /> import { Stats } from 'fs'; export interface FileEntry { path: string; relativePath: string; name: string; ext: string; stats: Stats; content?: string | Buffer; depth: number; isFile: true; isDirectory: false; } export interface FolderEntry { path: string; relativePath: string; name: string; stats: Stats; depth: number; isFile: false; isDirectory: true; } export declare type WalkerEntry = FileEntry | FolderEntry; export declare type FileHandler<T = void> = (entry: FileEntry) => T | Promise<T>; export declare type FolderHandler<T = void> = (entry: FolderEntry) => T | Promise<T>; export declare type ErrorHandler = (error: Error, path: string) => void; export declare type AsyncFilter<T extends WalkerEntry> = (entry: T) => boolean | Promise<boolean>; export declare type CollectorHandler<T, R> = (results: T[]) => R | Promise<R>; export interface WalkerOptions { maxDepth?: number; includeFiles?: boolean; includeFolders?: boolean; extensions?: string[]; pattern?: RegExp; exclude?: string[]; include?: string[]; followSymlinks?: boolean; includeHidden?: boolean; maxFileSize?: number; encoding?: BufferEncoding; readContents?: boolean; customFilters?: AsyncFilter<WalkerEntry>[]; }