summaryrefslogtreecommitdiff
path: root/fs/glob.ts
diff options
context:
space:
mode:
Diffstat (limited to 'fs/glob.ts')
-rw-r--r--fs/glob.ts44
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;
}