summaryrefslogtreecommitdiff
path: root/node_modules/tinyglobby/dist/index.d.mts
blob: 9d67dae260a76a6aa817a310390687becbc1eee6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
import { FSLike } from "fdir";

//#region src/utils.d.ts

/**
* Converts a path to a pattern depending on the platform.
* Identical to {@link escapePath} on POSIX systems.
* @see {@link https://superchupu.dev/tinyglobby/documentation#convertPathToPattern}
*/
declare const convertPathToPattern: (path: string) => string;
/**
* Escapes a path's special characters depending on the platform.
* @see {@link https://superchupu.dev/tinyglobby/documentation#escapePath}
*/
declare const escapePath: (path: string) => string;
/**
* Checks if a pattern has dynamic parts.
*
* Has a few minor differences with [`fast-glob`](https://github.com/mrmlnc/fast-glob) for better accuracy:
*
* - Doesn't necessarily return `false` on patterns that include `\`.
* - Returns `true` if the pattern includes parentheses, regardless of them representing one single pattern or not.
* - Returns `true` for unfinished glob extensions i.e. `(h`, `+(h`.
* - Returns `true` for unfinished brace expansions as long as they include `,` or `..`.
*
* @see {@link https://superchupu.dev/tinyglobby/documentation#isDynamicPattern}
*/
declare function isDynamicPattern(pattern: string, options?: {
  caseSensitiveMatch: boolean;
}): boolean;
//#endregion
//#region src/index.d.ts
interface GlobOptions {
  /**
  * Whether to return absolute paths. Disable to have relative paths.
  * @default false
  */
  absolute?: boolean;
  /**
  * Enables support for brace expansion syntax, like `{a,b}` or `{1..9}`.
  * @default true
  */
  braceExpansion?: boolean;
  /**
  * Whether to match in case-sensitive mode.
  * @default true
  */
  caseSensitiveMatch?: boolean;
  /**
  * The working directory in which to search. Results will be returned relative to this directory, unless
  * {@link absolute} is set.
  *
  * It is important to avoid globbing outside this directory when possible, even with absolute paths enabled,
  * as doing so can harm performance due to having to recalculate relative paths.
  * @default process.cwd()
  */
  cwd?: string | URL;
  /**
  * Logs useful debug information. Meant for development purposes. Logs can change at any time.
  * @default false
  */
  debug?: boolean;
  /**
  * Maximum directory depth to crawl.
  * @default Infinity
  */
  deep?: number;
  /**
  * Whether to return entries that start with a dot, like `.gitignore` or `.prettierrc`.
  * @default false
  */
  dot?: boolean;
  /**
  * Whether to automatically expand directory patterns.
  *
  * Important to disable if migrating from [`fast-glob`](https://github.com/mrmlnc/fast-glob).
  * @default true
  */
  expandDirectories?: boolean;
  /**
  * Enables support for extglobs, like `+(pattern)`.
  * @default true
  */
  extglob?: boolean;
  /**
  * Whether to traverse and include symbolic links. Can slightly affect performance.
  * @default true
  */
  followSymbolicLinks?: boolean;
  /**
  * An object that overrides `node:fs` functions.
  * @default import('node:fs')
  */
  fs?: FileSystemAdapter;
  /**
  * Enables support for matching nested directories with globstars (`**`).
  * If `false`, `**` behaves exactly like `*`.
  * @default true
  */
  globstar?: boolean;
  /**
  * Glob patterns to exclude from the results.
  * @default []
  */
  ignore?: string | readonly string[];
  /**
  * Enable to only return directories.
  * If `true`, disables {@link onlyFiles}.
  * @default false
  */
  onlyDirectories?: boolean;
  /**
  * Enable to only return files.
  * @default true
  */
  onlyFiles?: boolean;
  /**
  * @deprecated Provide patterns as the first argument instead.
  */
  patterns?: string | readonly string[];
  /**
  * An `AbortSignal` to abort crawling the file system.
  * @default undefined
  */
  signal?: AbortSignal;
}
type FileSystemAdapter = Partial<FSLike>;
/**
* Asynchronously match files following a glob pattern.
* @see {@link https://superchupu.dev/tinyglobby/documentation#glob}
*/
declare function glob(patterns: string | readonly string[], options?: Omit<GlobOptions, "patterns">): Promise<string[]>;
/**
* @deprecated Provide patterns as the first argument instead.
*/
declare function glob(options: GlobOptions): Promise<string[]>;
/**
* Synchronously match files following a glob pattern.
* @see {@link https://superchupu.dev/tinyglobby/documentation#globSync}
*/
declare function globSync(patterns: string | readonly string[], options?: Omit<GlobOptions, "patterns">): string[];
/**
* @deprecated Provide patterns as the first argument instead.
*/
declare function globSync(options: GlobOptions): string[];
//#endregion
export { FileSystemAdapter, GlobOptions, convertPathToPattern, escapePath, glob, globSync, isDynamicPattern };