Skip to content

Interface: FileFindOptions

  • Omit<GlobOptionsWithFileTypesUnset, "ignore" | "follow" | "dot" | "cwd" | "includeChildMatches">.Omit<FileScanOptions, "ignore" | "cwd">

optional absolute?: boolean

Set to true to always receive absolute paths for matched files. Set to false to always return relative paths.

When this option is not set, absolute paths are returned for patterns that are absolute, and otherwise paths are returned that are relative to the cwd setting.

This does not make an extra system call to get the realpath, it only does string path resolution.

Conflicts with withFileTypes

Omit.absolute


optional allowWindowsEscape?: boolean

Set to false to enable windowsPathsNoEscape

Omit.allowWindowsEscape


optional braceExpandMax?: number

max number of {...} patterns to expand. Default 1_000.

Note: this is much less than minimatch’s default of 100_000, because Glob has higher memory requirements due to walking the file system tree.

Omit.braceExpandMax


optional cwd?: string | URL


optional debug?: boolean

Just passed along to Minimatch. Note that this makes all pattern matching operations slower and extremely noisy.

Omit.debug


optional dotRelative?: boolean

Prepend all relative path strings with ./ (or . on Windows).

Without this option, returned relative paths are “bare”, so instead of returning './foo/bar', they are returned as 'foo/bar'.

Relative patterns starting with '../' are not prepended with ./, even if this option is set.

Omit.dotRelative


optional followSymlinks?: boolean

Follow symbolic links.

Maps to: glob: follow chokidar: followSymlinks

FileScanOptions.followSymlinks


optional fs?: FSOption

An fs implementation to override some or all of the defaults. See http://npm.im/path-scurry for details about what can be overridden.

Omit.fs


optional ignore?: FileFindIgnore


optional ignoreOptions?: IgnorePatternOptions

FileScanOptions.ignoreOptions


optional magicalBraces?: boolean

Treat brace expansion like {a,b} as a “magic” pattern. Has no effect if nobrace is set.

Only has effect on the hasMagic function.

Omit.magicalBraces


optional mark?: boolean

Add a / character to directory matches. Note that this requires additional stat calls in some cases.

Omit.mark


optional matchBase?: boolean

Perform a basename-only match if the pattern does not contain any slash characters. That is, *.js would be treated as equivalent to **/*.js, matching all js files in all directories.

Omit.matchBase


optional maxDepth?: number

Limit the directory traversal to a given depth below the cwd. Note that this does NOT prevent traversal to sibling folders, root patterns, and so on. It only limits the maximum folder depth that the walk will descend, relative to the cwd.

Omit.maxDepth


optional nobrace?: boolean

Do not expand {a,b} and {1..3} brace sets.

Omit.nobrace


optional nocase?: boolean

Perform a case-insensitive match. This defaults to true on macOS and Windows systems, and false on all others.

Note nocase should only be explicitly set when it is known that the filesystem’s case sensitivity differs from the platform default. If set true on case-sensitive file systems, or false on case-insensitive file systems, then the walk may return more or less results than expected.

Omit.nocase


optional nodir?: boolean

Do not match directories, only files. (Note: to match only directories, put a / at the end of the pattern.)

Omit.nodir


optional noext?: boolean

Do not match “extglob” patterns such as +(a|b).

Omit.noext


optional noglobstar?: boolean

Do not match ** against multiple filenames. (Ie, treat it as a normal * instead.)

Conflicts with matchBase

Omit.noglobstar


optional platform?: Platform

Defaults to value of process.platform if available, or 'linux' if not. Setting platform:'win32' on non-Windows systems may cause strange behavior.

Omit.platform


optional posix?: boolean

Return / delimited paths, even on Windows.

On posix systems, this has no effect. But, on Windows, it means that paths will be / delimited, and absolute paths will be their full resolved UNC forms, eg instead of 'C:\\foo\\bar', it would return '//?/C:/foo/bar'

Omit.posix


optional realpath?: boolean

Set to true to call fs.realpath on all of the results. In the case of an entry that cannot be resolved, the entry is omitted. This incurs a slight performance penalty, of course, because of the added system calls.

Omit.realpath


optional root?: string

A string path resolved against the cwd option, which is used as the starting point for absolute patterns that start with /, (but not drive letters or UNC paths on Windows).

Note that this doesn’t necessarily limit the walk to the root directory, and doesn’t affect the cwd starting point for non-absolute patterns. A pattern containing .. will still be able to traverse out of the root directory, if it is not an actual root directory on the filesystem, and any non-absolute patterns will be matched in the cwd. For example, the pattern /../* with {root:'/some/path'} will return all files in /some, not all files in /some/path. The pattern * with {root:'/some/path'} will return all the entries in the cwd, not the entries in /some/path.

To start absolute and non-absolute patterns in the same path, you can use {root:''}. However, be aware that on Windows systems, a pattern like x:/* or //host/share/* will always start in the x:/ or //host/share directory, regardless of the root setting.

Omit.root


optional scurry?: PathScurry

A PathScurry object used to traverse the file system. If the nocase option is set explicitly, then any provided scurry object must match this setting.

Omit.scurry


optional signal?: AbortSignal

An AbortSignal which will cancel the Glob walk when triggered.

Omit.signal


optional stat?: boolean

Call lstat() on all entries, whether required or not to determine if it’s a valid match. When used with withFileTypes, this means that matches will include data such as modified time, permissions, and so on. Note that this will incur a performance cost due to the added system calls.

Omit.stat


optional windowsPathsNoEscape?: boolean

Use \\ as a path separator only, and never as an escape character. If set, all \\ characters are replaced with / in the pattern.

Note that this makes it impossible to match against paths containing literal glob pattern characters, but allows matching with patterns constructed using path.join() and path.resolve() on Windows platforms, mimicking the (buggy!) behavior of Glob v7 and before on Windows. Please use with caution, and be mindful of the caveat below about Windows paths. (For legacy reasons, this is also set if allowWindowsEscape is set to the exact value false.)

Omit.windowsPathsNoEscape


optional withFileTypes?: undefined

Return PathScurry Path objects instead of strings. These are similar to a NodeJS Dirent object, but with additional methods and properties.

Conflicts with absolute

Omit.withFileTypes