diff options
Diffstat (limited to 'fs/glob.ts')
| -rw-r--r-- | fs/glob.ts | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/fs/glob.ts b/fs/glob.ts index 1031bd75d..8c64c45b3 100644 --- a/fs/glob.ts +++ b/fs/glob.ts @@ -1,6 +1,48 @@ import { FileInfo } from "deno"; -import { globrex, GlobOptions } from "./globrex.ts"; +import { globrex } from "./globrex.ts"; +export interface GlobOptions { + // Allow ExtGlob features + extended?: boolean; + // When globstar is true, '/foo/**' is equivelant + // to '/foo/*' when globstar is false. + // Having globstar set to true is the same usage as + // using wildcards in bash + globstar?: boolean; + // be laissez faire about mutiple slashes + strict?: boolean; + // Parse as filepath for extra path related features + filepath?: boolean; + // Flag to use in the generated RegExp + flags?: string; +} + +/** + * Generate a regex based on glob pattern and options + * This was meant to be using the the `fs.walk` function + * but can be used anywhere else. + * @param glob - Glob pattern to be used + * @param options - Specific options for the glob pattern + * @returns A RegExp for the glob pattern + * @example + * Looking for all the `ts` files + * ```typescript + * walkSync(".", { + * match: [glob("*.ts")] + * }) + * ``` + * @example + * Looking for all the `.json` files in any subfolder + * of the `a` folder + * ```typescript + * walkSync(".", { + * match: [glob(join("a", "**", "*.json"),flags: "g", + * extended: true, + * globstar: true + * })] + * }) + * ``` + */ export function glob(glob: string, options: GlobOptions = {}): RegExp { return globrex(glob, options).regex; } |
