{\bfseries{Details}}

\begin{quote}
It\textquotesingle{}s a very fast and efficient \href{https://en.wikipedia.org/wiki/Glob_(programming)}{\texttt{ glob}} library for \href{https://nodejs.org/en}{\texttt{ Node.\+js}}. \end{quote}
This package provides methods for traversing the file system and returning pathnames that matched a defined set of a specified pattern according to the rules used by the Unix Bash shell with some simplifications, meanwhile results are returned in {\bfseries{arbitrary order}}. Quick, simple, effective.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10186}{}\doxysection{Table of Contents}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10186}
$<$details$>$


\begin{DoxyItemize}
\item \href{\#highlights}{\texttt{ Highlights}}
\item \href{\#donation}{\texttt{ Donation}}
\item \href{\#old-and-modern-mode}{\texttt{ Old and modern mode}}
\item \href{\#pattern-syntax}{\texttt{ Pattern syntax}}
\begin{DoxyItemize}
\item \href{\#basic-syntax}{\texttt{ Basic syntax}}
\item \href{\#advanced-syntax}{\texttt{ Advanced syntax}}
\end{DoxyItemize}
\item \href{\#installation}{\texttt{ Installation}}
\item \href{\#api}{\texttt{ API}}
\begin{DoxyItemize}
\item \href{\#asynchronous}{\texttt{ Asynchronous}}
\item \href{\#synchronous}{\texttt{ Synchronous}}
\item \href{\#stream}{\texttt{ Stream}}
\begin{DoxyItemize}
\item \href{\#patterns}{\texttt{ patterns}}
\item \href{\#options}{\texttt{ \mbox{[}options\mbox{]}}}
\end{DoxyItemize}
\item \href{\#helpers}{\texttt{ Helpers}}
\begin{DoxyItemize}
\item \href{\#generatetaskspatterns-options}{\texttt{ generate\+Tasks}}
\item \href{\#isdynamicpatternpattern-options}{\texttt{ is\+Dynamic\+Pattern}}
\item \href{\#escapepathpattern}{\texttt{ escape\+Path}}
\end{DoxyItemize}
\end{DoxyItemize}
\item \href{\#options-3}{\texttt{ Options}}
\begin{DoxyItemize}
\item \href{\#common}{\texttt{ Common}}
\begin{DoxyItemize}
\item \href{\#concurrency}{\texttt{ concurrency}}
\item \href{\#cwd}{\texttt{ cwd}}
\item \href{\#deep}{\texttt{ deep}}
\item \href{\#followsymboliclinks}{\texttt{ follow\+Symbolic\+Links}}
\item \href{\#fs}{\texttt{ fs}}
\item \href{\#ignore}{\texttt{ ignore}}
\item \href{\#suppresserrors}{\texttt{ suppress\+Errors}}
\item \href{\#throwerroronbrokensymboliclink}{\texttt{ throw\+Error\+On\+Broken\+Symbolic\+Link}}
\end{DoxyItemize}
\item \href{\#output-control}{\texttt{ Output control}}
\begin{DoxyItemize}
\item \href{\#absolute}{\texttt{ absolute}}
\item \href{\#markdirectories}{\texttt{ mark\+Directories}}
\item \href{\#objectmode}{\texttt{ object\+Mode}}
\item \href{\#onlydirectories}{\texttt{ only\+Directories}}
\item \href{\#onlyfiles}{\texttt{ only\+Files}}
\item \href{\#stats}{\texttt{ stats}}
\item \href{\#unique}{\texttt{ unique}}
\end{DoxyItemize}
\item \href{\#matching-control}{\texttt{ Matching control}}
\begin{DoxyItemize}
\item \href{\#braceexpansion}{\texttt{ brace\+Expansion}}
\item \href{\#casesensitivematch}{\texttt{ case\+Sensitive\+Match}}
\item \href{\#dot}{\texttt{ dot}}
\item \href{\#extglob}{\texttt{ extglob}}
\item \href{\#globstar}{\texttt{ globstar}}
\item \href{\#basenamematch}{\texttt{ base\+Name\+Match}}
\end{DoxyItemize}
\end{DoxyItemize}
\item \href{\#faq}{\texttt{ FAQ}}
\begin{DoxyItemize}
\item \href{\#what-is-a-static-or-dynamic-pattern}{\texttt{ What is a static or dynamic pattern?}}
\item \href{\#how-to-write-patterns-on-windows}{\texttt{ How to write patterns on Windows?}}
\item \href{\#why-are-parentheses-match-wrong}{\texttt{ Why are parentheses match wrong?}}
\item \href{\#how-to-exclude-directory-from-reading}{\texttt{ How to exclude directory from reading?}}
\item \href{\#how-to-use-unc-path}{\texttt{ How to use UNC path?}}
\item \href{\#compatible-with-node-glob}{\texttt{ Compatible with {\ttfamily node-\/glob}?}}
\end{DoxyItemize}
\item \href{\#benchmarks}{\texttt{ Benchmarks}}
\begin{DoxyItemize}
\item \href{\#server}{\texttt{ Server}}
\item \href{\#nettop}{\texttt{ Nettop}}
\end{DoxyItemize}
\item \href{\#changelog}{\texttt{ Changelog}}
\item \href{\#license}{\texttt{ License}}
\end{DoxyItemize}

$<$/details$>$\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10187}{}\doxysection{Highlights}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10187}

\begin{DoxyItemize}
\item Fast. Probably the fastest.
\item Supports multiple and negative patterns.
\item Synchronous, Promise and Stream API.
\item Object mode. Can return more than just strings.
\item Error-\/tolerant.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10188}{}\doxysection{Donation}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10188}
Do you like this project? Support it by donating, creating an issue or pull request.

\href{https://paypal.me/mrmlnc}{\texttt{ }}\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10189}{}\doxysection{Old and modern mode}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10189}
This package works in two modes, depending on the environment in which it is used.


\begin{DoxyItemize}
\item {\bfseries{Old mode}}. Node.\+js below 10.\+10 or when the \href{\#stats}{\texttt{ {\ttfamily stats}}} option is {\itshape enabled}.
\item {\bfseries{Modern mode}}. Node.\+js 10.\+10+ and the \href{\#stats}{\texttt{ {\ttfamily stats}}} option is {\itshape disabled}.
\end{DoxyItemize}

The modern mode is faster. Learn more about the \href{https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md\#old-and-modern-mode}{\texttt{ internal mechanism}}.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10190}{}\doxysection{Pattern syntax}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10190}
\begin{quote}
\+:warning\+: Always use forward-\/slashes in glob expressions (patterns and \href{\#ignore}{\texttt{ {\ttfamily ignore}}} option). Use backslashes for escaping characters. \end{quote}
There is more than one form of syntax\+: basic and advanced. Below is a brief overview of the supported features. Also pay attention to our \href{\#faq}{\texttt{ FAQ}}.

\begin{quote}
\+:book\+: This package uses a \href{https://github.com/micromatch/micromatch}{\texttt{ {\ttfamily micromatch}}} as a library for pattern matching. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10191}{}\doxysubsection{Basic syntax}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10191}

\begin{DoxyItemize}
\item An asterisk ({\ttfamily $\ast$}) — matches everything except slashes (path separators), hidden files (names starting with {\ttfamily .}).
\item A double star or globstar ({\ttfamily $\ast$$\ast$}) — matches zero or more directories.
\item Question mark ({\ttfamily ?}) – matches any single character except slashes (path separators).
\item Sequence ({\ttfamily \mbox{[}seq\mbox{]}}) — matches any character in sequence.
\end{DoxyItemize}

\begin{quote}
\+:book\+: A few additional words about the \href{https://github.com/micromatch/picomatch\#matching-behavior-vs-bash}{\texttt{ basic matching behavior}}. \end{quote}
Some examples\+:


\begin{DoxyItemize}
\item {\ttfamily src/$\ast$$\ast$/$\ast$.js} — matches all files in the {\ttfamily src} directory (any level of nesting) that have the {\ttfamily .js} extension.
\item {\ttfamily src/$\ast$.??} — matches all files in the {\ttfamily src} directory (only first level of nesting) that have a two-\/character extension.
\item {\ttfamily file-\/\mbox{[}01\mbox{]}.js} — matches files\+: {\ttfamily file-\/0.\+js}, {\ttfamily file-\/1.\+js}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10192}{}\doxysubsection{Advanced syntax}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10192}

\begin{DoxyItemize}
\item \href{https://github.com/micromatch/micromatch\#backslashes}{\texttt{ Escapes characters}} ({\ttfamily \textbackslash{}\textbackslash{}}) — matching special characters ({\ttfamily \$$^\wedge$$\ast$+?()\mbox{[}\mbox{]}}) as literals.
\item \href{https://github.com/micromatch/picomatch\#posix-brackets}{\texttt{ POSIX character classes}} ({\ttfamily \mbox{[}\mbox{[}\+:digit\+:\mbox{]}\mbox{]}}).
\item \href{https://github.com/micromatch/micromatch\#extglobs}{\texttt{ Extended globs}} ({\ttfamily ?(pattern-\/list)}).
\item \href{https://github.com/micromatch/braces}{\texttt{ Bash style brace expansions}} ({\ttfamily \{\}}).
\item \href{https://github.com/micromatch/micromatch\#regex-character-classes}{\texttt{ Regexp character classes}} ({\ttfamily \mbox{[}1-\/5\mbox{]}}).
\item \href{https://www.regular-expressions.info/brackets.html}{\texttt{ Regex groups}} ({\ttfamily (a$\vert$b)}).
\end{DoxyItemize}

\begin{quote}
\+:book\+: A few additional words about the \href{https://github.com/micromatch/micromatch\#extended-globbing}{\texttt{ advanced matching behavior}}. \end{quote}
Some examples\+:


\begin{DoxyItemize}
\item {\ttfamily src/$\ast$$\ast$/$\ast$.\{css,scss\}} — matches all files in the {\ttfamily src} directory (any level of nesting) that have the {\ttfamily .css} or {\ttfamily .scss} extension.
\item {\ttfamily file-\/\mbox{[}\mbox{[}\+:digit\+:\mbox{]}\mbox{]}.js} — matches files\+: {\ttfamily file-\/0.\+js}, {\ttfamily file-\/1.\+js}, …, {\ttfamily file-\/9.\+js}.
\item {\ttfamily file-\/\{1..3\}.js} — matches files\+: {\ttfamily file-\/1.\+js}, {\ttfamily file-\/2.\+js}, {\ttfamily file-\/3.\+js}.
\item {\ttfamily file-\/(1$\vert$2)} — matches files\+: {\ttfamily file-\/1.\+js}, {\ttfamily file-\/2.\+js}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10193}{}\doxysection{Installation}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10193}

\begin{DoxyCode}{0}
\DoxyCodeLine{npm install fast-\/glob }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10194}{}\doxysection{API}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10194}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10195}{}\doxysubsection{Asynchronous}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10195}

\begin{DoxyCode}{0}
\DoxyCodeLine{fg(patterns, [options]) }

\end{DoxyCode}


Returns a {\ttfamily Promise} with an array of matching entries.


\begin{DoxyCode}{0}
\DoxyCodeLine{const fg = require('fast-\/glob');}
\DoxyCodeLine{}
\DoxyCodeLine{const entries = await fg(['.editorconfig', '**/index.js'], \{ dot: true \});}
\DoxyCodeLine{}
\DoxyCodeLine{// ['.editorconfig', 'services/index.js'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10196}{}\doxysubsection{Synchronous}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10196}

\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync(patterns, [options]) }

\end{DoxyCode}


Returns an array of matching entries.


\begin{DoxyCode}{0}
\DoxyCodeLine{const fg = require('fast-\/glob');}
\DoxyCodeLine{}
\DoxyCodeLine{const entries = fg.sync(['.editorconfig', '**/index.js'], \{ dot: true \});}
\DoxyCodeLine{}
\DoxyCodeLine{// ['.editorconfig', 'services/index.js'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10197}{}\doxysubsection{Stream}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10197}

\begin{DoxyCode}{0}
\DoxyCodeLine{fg.stream(patterns, [options]) }

\end{DoxyCode}


Returns a \href{https://nodejs.org/api/stream.html\#stream_readable_streams}{\texttt{ {\ttfamily Readable\+Stream}}} when the {\ttfamily data} event will be emitted with matching entry.


\begin{DoxyCode}{0}
\DoxyCodeLine{const fg = require('fast-\/glob');}
\DoxyCodeLine{}
\DoxyCodeLine{const stream = fg.stream(['.editorconfig', '**/index.js'], \{ dot: true \});}
\DoxyCodeLine{}
\DoxyCodeLine{for await (const entry of stream) \{}
\DoxyCodeLine{    // .editorconfig}
\DoxyCodeLine{    // services/index.js}
\DoxyCodeLine{\} }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10198}{}\doxysubsubsection{patterns}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10198}

\begin{DoxyItemize}
\item Required\+: {\ttfamily true}
\item Type\+: {\ttfamily string $\vert$ string\mbox{[}\mbox{]}}
\end{DoxyItemize}

Any correct pattern(s).

\begin{quote}
\+:1234\+: \href{\#pattern-syntax}{\texttt{ Pattern syntax}}

\+:warning\+: This package does not respect the order of patterns. First, all the negative patterns are applied, and only then the positive patterns. If you want to get a certain order of records, use sorting or split calls. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10199}{}\doxysubsubsection{\mbox{[}options\mbox{]}}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10199}

\begin{DoxyItemize}
\item Required\+: {\ttfamily false}
\item Type\+: \href{\#options-3}{\texttt{ {\ttfamily Options}}}
\end{DoxyItemize}

See \href{\#options-3}{\texttt{ Options}} section.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10200}{}\doxysubsection{Helpers}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10200}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10201}{}\doxysubsubsection{$<$tt$>$generate\+Tasks(patterns, \mbox{[}options\mbox{]})$<$/tt$>$}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10201}
Returns the internal representation of patterns (\href{./src/managers/tasks.ts}{\texttt{ {\ttfamily Task}}} is a combining patterns by base directory).


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.generateTasks('*');}
\DoxyCodeLine{}
\DoxyCodeLine{[\{}
\DoxyCodeLine{    base: '.', // Parent directory for all patterns inside this task}
\DoxyCodeLine{    dynamic: true, // Dynamic or static patterns are in this task}
\DoxyCodeLine{    patterns: ['*'],}
\DoxyCodeLine{    positive: ['*'],}
\DoxyCodeLine{    negative: []}
\DoxyCodeLine{\}] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10202}{}\doxyparagraph{patterns}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10202}

\begin{DoxyItemize}
\item Required\+: {\ttfamily true}
\item Type\+: {\ttfamily string $\vert$ string\mbox{[}\mbox{]}}
\end{DoxyItemize}

Any correct pattern(s).\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10203}{}\doxyparagraph{\mbox{[}options\mbox{]}}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10203}

\begin{DoxyItemize}
\item Required\+: {\ttfamily false}
\item Type\+: \href{\#options-3}{\texttt{ {\ttfamily Options}}}
\end{DoxyItemize}

See \href{\#options-3}{\texttt{ Options}} section.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10204}{}\doxysubsubsection{$<$tt$>$is\+Dynamic\+Pattern(pattern, \mbox{[}options\mbox{]})$<$/tt$>$}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10204}
Returns {\ttfamily true} if the passed pattern is a dynamic pattern.

\begin{quote}
\+:1234\+: \href{\#what-is-a-static-or-dynamic-pattern}{\texttt{ What is a static or dynamic pattern?}} \end{quote}

\begin{DoxyCode}{0}
\DoxyCodeLine{fg.isDynamicPattern('*'); // true}
\DoxyCodeLine{fg.isDynamicPattern('abc'); // false }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10205}{}\doxyparagraph{pattern}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10205}

\begin{DoxyItemize}
\item Required\+: {\ttfamily true}
\item Type\+: {\ttfamily string}
\end{DoxyItemize}

Any correct pattern.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10206}{}\doxyparagraph{\mbox{[}options\mbox{]}}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10206}

\begin{DoxyItemize}
\item Required\+: {\ttfamily false}
\item Type\+: \href{\#options-3}{\texttt{ {\ttfamily Options}}}
\end{DoxyItemize}

See \href{\#options-3}{\texttt{ Options}} section.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10207}{}\doxysubsubsection{$<$tt$>$escape\+Path(pattern)$<$/tt$>$}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10207}
Returns a path with escaped special characters ({\ttfamily $\ast$?$\vert$()\{\}\mbox{[}\mbox{]}}, {\ttfamily !} at the beginning of line, {\ttfamily @+!} before the opening parenthesis).


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.escapePath('!abc'); // \(\backslash\)\(\backslash\)!abc}
\DoxyCodeLine{fg.escapePath('C:/Program Files (x86)'); // C:/Program Files \(\backslash\)\(\backslash\)(x86\(\backslash\)\(\backslash\)) }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10208}{}\doxyparagraph{pattern}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10208}

\begin{DoxyItemize}
\item Required\+: {\ttfamily true}
\item Type\+: {\ttfamily string}
\end{DoxyItemize}

Any string, for example, a path to a file.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10209}{}\doxysection{Options}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10209}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10210}{}\doxysubsection{Common options}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10210}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10211}{}\doxysubsubsection{concurrency}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10211}

\begin{DoxyItemize}
\item Type\+: {\ttfamily number}
\item Default\+: {\ttfamily os.\+cpus().length}
\end{DoxyItemize}

Specifies the maximum number of concurrent requests from a reader to read directories.

\begin{quote}
\+:book\+: The higher the number, the higher the performance and load on the file system. If you want to read in quiet mode, set the value to a comfortable number or {\ttfamily 1}. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10212}{}\doxysubsubsection{cwd}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10212}

\begin{DoxyItemize}
\item Type\+: {\ttfamily string}
\item Default\+: {\ttfamily process.\+cwd()}
\end{DoxyItemize}

The current working directory in which to search.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10213}{}\doxysubsubsection{deep}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10213}

\begin{DoxyItemize}
\item Type\+: {\ttfamily number}
\item Default\+: {\ttfamily Infinity}
\end{DoxyItemize}

Specifies the maximum depth of a read directory relative to the start directory.

For example, you have the following tree\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{└── one/            // 1}
\DoxyCodeLine{    └── two/        // 2}
\DoxyCodeLine{        └── file.js // 3 }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{// With base directory}
\DoxyCodeLine{fg.sync('dir/**', \{ onlyFiles: false, deep: 1 \}); // ['dir/one']}
\DoxyCodeLine{fg.sync('dir/**', \{ onlyFiles: false, deep: 2 \}); // ['dir/one', 'dir/one/two']}
\DoxyCodeLine{}
\DoxyCodeLine{// With cwd option}
\DoxyCodeLine{fg.sync('**', \{ onlyFiles: false, cwd: 'dir', deep: 1 \}); // ['one']}
\DoxyCodeLine{fg.sync('**', \{ onlyFiles: false, cwd: 'dir', deep: 2 \}); // ['one', 'one/two'] }

\end{DoxyCode}


\begin{quote}
\+:book\+: If you specify a pattern with some base directory, this directory will not participate in the calculation of the depth of the found directories. Think of it as a \href{\#cwd}{\texttt{ {\ttfamily cwd}}} option. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10214}{}\doxysubsubsection{follow\+Symbolic\+Links}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10214}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily true}
\end{DoxyItemize}

Indicates whether to traverse descendants of symbolic link directories.

\begin{quote}
\+:book\+: If the \href{\#stats}{\texttt{ {\ttfamily stats}}} option is specified, the information about the symbolic link ({\ttfamily fs.\+lstat}) will be replaced with information about the entry ({\ttfamily fs.\+stat}) behind it. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10215}{}\doxysubsubsection{fs}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10215}

\begin{DoxyItemize}
\item Type\+: {\ttfamily File\+System\+Adapter}
\item Default\+: {\ttfamily fs.$\ast$}
\end{DoxyItemize}

Custom implementation of methods for working with the file system.


\begin{DoxyCode}{0}
\DoxyCodeLine{export interface FileSystemAdapter \{}
\DoxyCodeLine{    lstat?: typeof fs.lstat;}
\DoxyCodeLine{    stat?: typeof fs.stat;}
\DoxyCodeLine{    lstatSync?: typeof fs.lstatSync;}
\DoxyCodeLine{    statSync?: typeof fs.statSync;}
\DoxyCodeLine{    readdir?: typeof fs.readdir;}
\DoxyCodeLine{    readdirSync?: typeof fs.readdirSync;}
\DoxyCodeLine{\} }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10216}{}\doxysubsubsection{ignore}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10216}

\begin{DoxyItemize}
\item Type\+: {\ttfamily string\mbox{[}\mbox{]}}
\item Default\+: {\ttfamily \mbox{[}\mbox{]}}
\end{DoxyItemize}

An array of glob patterns to exclude matches. This is an alternative way to use negative patterns.


\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{├── package-\/lock.json}
\DoxyCodeLine{└── package.json }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync(['*.json', '!package-\/lock.json']);            // ['package.json']}
\DoxyCodeLine{fg.sync('*.json', \{ ignore: ['package-\/lock.json'] \}); // ['package.json'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10217}{}\doxysubsubsection{suppress\+Errors}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10217}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

By default this package suppress only {\ttfamily ENOENT} errors. Set to {\ttfamily true} to suppress any error.

\begin{quote}
\+:book\+: Can be useful when the directory has entries with a special level of access. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10218}{}\doxysubsubsection{throw\+Error\+On\+Broken\+Symbolic\+Link}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10218}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

Throw an error when symbolic link is broken if {\ttfamily true} or safely return {\ttfamily lstat} call if {\ttfamily false}.

\begin{quote}
\+:book\+: This option has no effect on errors when reading the symbolic link directory. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10219}{}\doxysubsection{Output control}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10219}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10220}{}\doxysubsubsection{absolute}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10220}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

Return the absolute path for entries.


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*.js', \{ absolute: false \}); // ['index.js']}
\DoxyCodeLine{fg.sync('*.js', \{ absolute: true \});  // ['/home/user/index.js'] }

\end{DoxyCode}


\begin{quote}
\+:book\+: This option is required if you want to use negative patterns with absolute path, for example, {\ttfamily !\$\{\+\_\+\+\_\+dirname\}/$\ast$.js}. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10221}{}\doxysubsubsection{mark\+Directories}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10221}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

Mark the directory path with the final slash.


\begin{DoxyCode}{0}
\DoxyCodeLine{fs.sync('*', \{ onlyFiles: false, markDirectories: false \}); // ['index.js', 'controllers']}
\DoxyCodeLine{fs.sync('*', \{ onlyFiles: false, markDirectories: true \});  // ['index.js', 'controllers/'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10222}{}\doxysubsubsection{object\+Mode}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10222}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

Returns objects (instead of strings) describing entries.


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*', \{ objectMode: false \}); // ['src/index.js']}
\DoxyCodeLine{fg.sync('*', \{ objectMode: true \});  // [\{ name: 'index.js', path: 'src/index.js', dirent: <fs.Dirent> \}] }

\end{DoxyCode}


The object has the following fields\+:


\begin{DoxyItemize}
\item name ({\ttfamily string}) — the last part of the path (basename)
\item path ({\ttfamily string}) — full path relative to the pattern base directory
\item dirent (\href{https://nodejs.org/api/fs.html\#fs_class_fs_dirent}{\texttt{ {\ttfamily fs.\+Dirent}}}) — instance of {\ttfamily fs.\+Direct}
\end{DoxyItemize}

\begin{quote}
\+:book\+: An object is an internal representation of entry, so getting it does not affect performance. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10223}{}\doxysubsubsection{only\+Directories}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10223}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

Return only directories.


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*', \{ onlyDirectories: false \}); // ['index.js', 'src']}
\DoxyCodeLine{fg.sync('*', \{ onlyDirectories: true \});  // ['src'] }

\end{DoxyCode}


\begin{quote}
\+:book\+: If {\ttfamily true}, the \href{\#onlyfiles}{\texttt{ {\ttfamily only\+Files}}} option is automatically {\ttfamily false}. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10224}{}\doxysubsubsection{only\+Files}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10224}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily true}
\end{DoxyItemize}

Return only files.


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*', \{ onlyFiles: false \}); // ['index.js', 'src']}
\DoxyCodeLine{fg.sync('*', \{ onlyFiles: true \});  // ['index.js'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10225}{}\doxysubsubsection{stats}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10225}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

Enables an \href{\#objectmode}{\texttt{ object mode}} with an additional field\+:


\begin{DoxyItemize}
\item stats (\href{https://nodejs.org/api/fs.html\#fs_class_fs_stats}{\texttt{ {\ttfamily fs.\+Stats}}}) — instance of {\ttfamily fs.\+Stats}
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*', \{ stats: false \}); // ['src/index.js']}
\DoxyCodeLine{fg.sync('*', \{ stats: true \});  // [\{ name: 'index.js', path: 'src/index.js', dirent: <fs.Dirent>, stats: <fs.Stats> \}] }

\end{DoxyCode}


\begin{quote}
\+:book\+: Returns {\ttfamily fs.\+stat} instead of {\ttfamily fs.\+lstat} for symbolic links when the \href{\#followsymboliclinks}{\texttt{ {\ttfamily follow\+Symbolic\+Links}}} option is specified.

\+:warning\+: Unlike \href{\#objectmode}{\texttt{ object mode}} this mode requires additional calls to the file system. On average, this mode is slower at least twice. See \href{\#old-and-modern-mode}{\texttt{ old and modern mode}} for more details. \end{quote}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10226}{}\doxysubsubsection{unique}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10226}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily true}
\end{DoxyItemize}

Ensures that the returned entries are unique.


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync(['*.json', 'package.json'], \{ unique: false \}); // ['package.json', 'package.json']}
\DoxyCodeLine{fg.sync(['*.json', 'package.json'], \{ unique: true \});  // ['package.json'] }

\end{DoxyCode}


If {\ttfamily true} and similar entries are found, the result is the first found.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10227}{}\doxysubsection{Matching control}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10227}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10228}{}\doxysubsubsection{brace\+Expansion}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10228}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily true}
\end{DoxyItemize}

Enables Bash-\/like brace expansion.

\begin{quote}
\+:1234\+: \href{https://wiki.bash-hackers.org/syntax/expansion/brace}{\texttt{ Syntax description}} or more \href{https://github.com/micromatch/braces}{\texttt{ detailed description}}. \end{quote}

\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{├── abd}
\DoxyCodeLine{├── acd}
\DoxyCodeLine{└── a\{b,c\}d }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('a\{b,c\}d', \{ braceExpansion: false \}); // ['a\{b,c\}d']}
\DoxyCodeLine{fg.sync('a\{b,c\}d', \{ braceExpansion: true \});  // ['abd', 'acd'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10229}{}\doxysubsubsection{case\+Sensitive\+Match}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10229}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily true}
\end{DoxyItemize}

Enables a \href{https://en.wikipedia.org/wiki/Case_sensitivity}{\texttt{ case-\/sensitive}} mode for matching files.


\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{├── file.txt}
\DoxyCodeLine{└── File.txt }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('file.txt', \{ caseSensitiveMatch: false \}); // ['file.txt', 'File.txt']}
\DoxyCodeLine{fg.sync('file.txt', \{ caseSensitiveMatch: true \});  // ['file.txt'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10230}{}\doxysubsubsection{dot}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10230}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

Allow patterns to match entries that begin with a period ({\ttfamily .}).

\begin{quote}
\+:book\+: Note that an explicit dot in a portion of the pattern will always match dot files. \end{quote}

\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{├── .editorconfig}
\DoxyCodeLine{└── package.json }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*', \{ dot: false \}); // ['package.json']}
\DoxyCodeLine{fg.sync('*', \{ dot: true \});  // ['.editorconfig', 'package.json'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10231}{}\doxysubsubsection{extglob}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10231}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily true}
\end{DoxyItemize}

Enables Bash-\/like {\ttfamily extglob} functionality.

\begin{quote}
\+:1234\+: \href{https://github.com/micromatch/micromatch\#extglobs}{\texttt{ Syntax description}}. \end{quote}

\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{├── README.md}
\DoxyCodeLine{└── package.json }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*.+(json|md)', \{ extglob: false \}); // []}
\DoxyCodeLine{fg.sync('*.+(json|md)', \{ extglob: true \});  // ['README.md', 'package.json'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10232}{}\doxysubsubsection{globstar}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10232}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily true}
\end{DoxyItemize}

Enables recursively repeats a pattern containing {\ttfamily $\ast$$\ast$}. If {\ttfamily false}, {\ttfamily $\ast$$\ast$} behaves exactly like {\ttfamily $\ast$}.


\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{└── a}
\DoxyCodeLine{    └── b }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('**', \{ onlyFiles: false, globstar: false \}); // ['a']}
\DoxyCodeLine{fg.sync('**', \{ onlyFiles: false, globstar: true \});  // ['a', 'a/b'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10233}{}\doxysubsubsection{base\+Name\+Match}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10233}

\begin{DoxyItemize}
\item Type\+: {\ttfamily boolean}
\item Default\+: {\ttfamily false}
\end{DoxyItemize}

If set to {\ttfamily true}, then patterns without slashes will be matched against the basename of the path if it contains slashes.


\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{└── one/}
\DoxyCodeLine{    └── file.md }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*.md', \{ baseNameMatch: false \}); // []}
\DoxyCodeLine{fg.sync('*.md', \{ baseNameMatch: true \});  // ['one/file.md'] }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10234}{}\doxysection{FAQ}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10234}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10235}{}\doxysection{What is a static or dynamic pattern?}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10235}
All patterns can be divided into two types\+:


\begin{DoxyItemize}
\item {\bfseries{static}}. A pattern is considered static if it can be used to get an entry on the file system without using matching mechanisms. For example, the {\ttfamily file.\+js} pattern is a static pattern because we can just verify that it exists on the file system.
\item {\bfseries{dynamic}}. A pattern is considered dynamic if it cannot be used directly to find occurrences without using a matching mechanisms. For example, the {\ttfamily $\ast$} pattern is a dynamic pattern because we cannot use this pattern directly.
\end{DoxyItemize}

A pattern is considered dynamic if it contains the following characters ({\ttfamily …} — any characters or their absence) or options\+:


\begin{DoxyItemize}
\item The \href{\#casesensitivematch}{\texttt{ {\ttfamily case\+Sensitive\+Match}}} option is disabled
\item {\ttfamily \textbackslash{}\textbackslash{}} (the escape character)
\item {\ttfamily $\ast$}, {\ttfamily ?}, {\ttfamily !} (at the beginning of line)
\item {\ttfamily \mbox{[}…\mbox{]}}
\item {\ttfamily (…$\vert$…)}
\item {\ttfamily @(…)}, {\ttfamily !(…)}, {\ttfamily $\ast$(…)}, {\ttfamily ?(…)}, {\ttfamily +(…)} (respects the \href{\#extglob}{\texttt{ {\ttfamily extglob}}} option)
\item {\ttfamily \{…,…\}}, {\ttfamily \{…..…\}} (respects the \href{\#braceexpansion}{\texttt{ {\ttfamily brace\+Expansion}}} option)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10236}{}\doxysection{How to write patterns on Windows?}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10236}
Always use forward-\/slashes in glob expressions (patterns and \href{\#ignore}{\texttt{ {\ttfamily ignore}}} option). Use backslashes for escaping characters. With the \href{\#cwd}{\texttt{ {\ttfamily cwd}}} option use a convenient format.

{\bfseries{Bad}}


\begin{DoxyCode}{0}
\DoxyCodeLine{[}
\DoxyCodeLine{    'directory\(\backslash\)\(\backslash\)*',}
\DoxyCodeLine{    path.join(process.cwd(), '**')}
\DoxyCodeLine{] }

\end{DoxyCode}


{\bfseries{Good}}


\begin{DoxyCode}{0}
\DoxyCodeLine{[}
\DoxyCodeLine{    'directory/*',}
\DoxyCodeLine{    path.join(process.cwd(), '**').replace(/\(\backslash\)\(\backslash\)/g, '/')}
\DoxyCodeLine{] }

\end{DoxyCode}


\begin{quote}
\+:book\+: Use the \href{https://www.npmjs.com/package/normalize-path}{\texttt{ {\ttfamily normalize-\/path}}} or the \href{https://www.npmjs.com/package/unixify}{\texttt{ {\ttfamily unixify}}} package to convert Windows-\/style path to a Unix-\/style path. \end{quote}
Read more about \href{https://github.com/micromatch/micromatch\#backslashes}{\texttt{ matching with backslashes}}.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10237}{}\doxysection{Why are parentheses match wrong?}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10237}

\begin{DoxyCode}{0}
\DoxyCodeLine{dir/}
\DoxyCodeLine{└── (special-\/*file).txt }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync(['(special-\/*file).txt']) // [] }

\end{DoxyCode}


Refers to Bash. You need to escape special characters\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync(['\(\backslash\)\(\backslash\)(special-\/*file\(\backslash\)\(\backslash\)).txt']) // ['(special-\/*file).txt'] }

\end{DoxyCode}


Read more about \href{https://github.com/micromatch/picomatch\#matching-special-characters-as-literals}{\texttt{ matching special characters as literals}}.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10238}{}\doxysection{How to exclude directory from reading?}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10238}
You can use a negative pattern like this\+: {\ttfamily !$\ast$$\ast$/node\+\_\+modules} or {\ttfamily !$\ast$$\ast$/node\+\_\+modules/$\ast$$\ast$}. Also you can use \href{\#ignore}{\texttt{ {\ttfamily ignore}}} option. Just look at the example below.


\begin{DoxyCode}{0}
\DoxyCodeLine{first/}
\DoxyCodeLine{├── file.md}
\DoxyCodeLine{└── second/}
\DoxyCodeLine{    └── file.txt }

\end{DoxyCode}


If you don\textquotesingle{}t want to read the {\ttfamily second} directory, you must write the following pattern\+: {\ttfamily !$\ast$$\ast$/second} or {\ttfamily !$\ast$$\ast$/second/$\ast$$\ast$}.


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync(['**/*.md', '!**/second']);                 // ['first/file.md']}
\DoxyCodeLine{fg.sync(['**/*.md'], \{ ignore: ['**/second/**'] \}); // ['first/file.md'] }

\end{DoxyCode}


\begin{quote}
\+:warning\+: When you write {\ttfamily !$\ast$$\ast$/second/$\ast$$\ast$/$\ast$} it means that the directory will be {\bfseries{read}}, but all the entries will not be included in the results. \end{quote}
You have to understand that if you write the pattern to exclude directories, then the directory will not be read under any circumstances.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10239}{}\doxysection{How to use UNC path?}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10239}
You cannot use \href{https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/62e862f4-2a51-452e-8eeb-dc4ff5ee33cc}{\texttt{ Uniform Naming Convention (UNC)}} paths as patterns (due to syntax), but you can use them as \href{\#cwd}{\texttt{ {\ttfamily cwd}}} directory.


\begin{DoxyCode}{0}
\DoxyCodeLine{fg.sync('*', \{ cwd: '\(\backslash\)\(\backslash\)\(\backslash\)\(\backslash\)?\(\backslash\)\(\backslash\)C:\(\backslash\)\(\backslash\)Python27' /* or //?/C:/Python27 */ \});}
\DoxyCodeLine{fg.sync('Python27/*', \{ cwd: '\(\backslash\)\(\backslash\)\(\backslash\)\(\backslash\)?\(\backslash\)\(\backslash\)C:\(\backslash\)\(\backslash\)' /* or //?/C:/ */ \}); }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10240}{}\doxysection{Compatible with $<$tt$>$node-\/glob$<$/tt$>$?}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10240}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ node-\/glob   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ fast-\/glob    }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ node-\/glob   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ fast-\/glob    }\\\cline{1-2}
\endhead
\PBS\centering {\ttfamily cwd}   &\PBS\centering \href{\#cwd}{\texttt{ {\ttfamily cwd}}}    \\\cline{1-2}
\PBS\centering {\ttfamily root}   &\PBS\centering –    \\\cline{1-2}
\PBS\centering {\ttfamily dot}   &\PBS\centering \href{\#dot}{\texttt{ {\ttfamily dot}}}    \\\cline{1-2}
\PBS\centering {\ttfamily nomount}   &\PBS\centering –    \\\cline{1-2}
\PBS\centering {\ttfamily mark}   &\PBS\centering \href{\#markdirectories}{\texttt{ {\ttfamily mark\+Directories}}}    \\\cline{1-2}
\PBS\centering {\ttfamily nosort}   &\PBS\centering –    \\\cline{1-2}
\PBS\centering {\ttfamily nounique}   &\PBS\centering \href{\#unique}{\texttt{ {\ttfamily unique}}}    \\\cline{1-2}
\PBS\centering {\ttfamily nobrace}   &\PBS\centering \href{\#braceexpansion}{\texttt{ {\ttfamily brace\+Expansion}}}    \\\cline{1-2}
\PBS\centering {\ttfamily noglobstar}   &\PBS\centering \href{\#globstar}{\texttt{ {\ttfamily globstar}}}    \\\cline{1-2}
\PBS\centering {\ttfamily noext}   &\PBS\centering \href{\#extglob}{\texttt{ {\ttfamily extglob}}}    \\\cline{1-2}
\PBS\centering {\ttfamily nocase}   &\PBS\centering \href{\#casesensitivematch}{\texttt{ {\ttfamily case\+Sensitive\+Match}}}    \\\cline{1-2}
\PBS\centering {\ttfamily match\+Base}   &\PBS\centering \href{\#basenamematch}{\texttt{ {\ttfamily base\+Name\+Match}}}    \\\cline{1-2}
\PBS\centering {\ttfamily nodir}   &\PBS\centering \href{\#onlyfiles}{\texttt{ {\ttfamily only\+Files}}}    \\\cline{1-2}
\PBS\centering {\ttfamily ignore}   &\PBS\centering \href{\#ignore}{\texttt{ {\ttfamily ignore}}}    \\\cline{1-2}
\PBS\centering {\ttfamily follow}   &\PBS\centering \href{\#followsymboliclinks}{\texttt{ {\ttfamily follow\+Symbolic\+Links}}}    \\\cline{1-2}
\PBS\centering {\ttfamily realpath}   &\PBS\centering –    \\\cline{1-2}
\PBS\centering {\ttfamily absolute}   &\PBS\centering \href{\#absolute}{\texttt{ {\ttfamily absolute}}}   \\\cline{1-2}
\end{longtabu}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10241}{}\doxysection{Benchmarks}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10241}
\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10242}{}\doxysubsection{Server}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10242}
Link\+: \href{https://www.vultr.com/pricing/baremetal}{\texttt{ Vultr Bare Metal}}


\begin{DoxyItemize}
\item Processor\+: E3-\/1270v6 (8 CPU)
\item RAM\+: 32GB
\item Disk\+: SSD (\href{https://ark.intel.com/content/www/us/en/ark/products/93012/intel-ssd-dc-s3520-series-240gb-2-5in-sata-6gb-s-3d1-mlc.html}{\texttt{ Intel DC S3520 SSDSC2\+BB240\+G7}})
\end{DoxyItemize}

You can see results \href{https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c\#file-fg-benchmark-server-product-txt}{\texttt{ here}} for latest release.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10243}{}\doxysubsection{Nettop}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10243}
Link\+: \href{https://www.zotac.com/ee/product/mini_pcs/zbox-bi323}{\texttt{ Zotac bi323}}


\begin{DoxyItemize}
\item Processor\+: Intel N3150 (4 CPU)
\item RAM\+: 8GB
\item Disk\+: SSD (\href{https://www.silicon-power.com/web/product-1}{\texttt{ Silicon Power SP060\+GBSS3\+S55\+S25}})
\end{DoxyItemize}

You can see results \href{https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c\#file-fg-benchmark-nettop-product-txt}{\texttt{ here}} for latest release.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10244}{}\doxysection{Changelog}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10244}
See the \href{https://github.com/mrmlnc/fast-glob/releases}{\texttt{ Releases section of our Git\+Hub project}} for changelog for each release version.\hypertarget{md_sfcode_node_modules_fast_glob_README_autotoc_md10245}{}\doxysection{License}\label{md_sfcode_node_modules_fast_glob_README_autotoc_md10245}
This software is released under the terms of the MIT license. 