mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-03-31 14:22:27 +00:00
35 lines
951 B
TypeScript
35 lines
951 B
TypeScript
import { glob, globSync, type GlobOptions } from "glob"
|
|
import { minimatch } from "minimatch"
|
|
|
|
export namespace Glob {
|
|
export interface Options {
|
|
cwd?: string
|
|
absolute?: boolean
|
|
include?: "file" | "all"
|
|
dot?: boolean
|
|
symlink?: boolean
|
|
}
|
|
|
|
function toGlobOptions(options: Options): GlobOptions {
|
|
return {
|
|
cwd: options.cwd,
|
|
absolute: options.absolute,
|
|
dot: options.dot,
|
|
follow: options.symlink ?? false,
|
|
nodir: options.include !== "all",
|
|
}
|
|
}
|
|
|
|
export async function scan(pattern: string, options: Options = {}): Promise<string[]> {
|
|
return glob(pattern, toGlobOptions(options)) as Promise<string[]>
|
|
}
|
|
|
|
export function scanSync(pattern: string, options: Options = {}): string[] {
|
|
return globSync(pattern, toGlobOptions(options)) as string[]
|
|
}
|
|
|
|
export function match(pattern: string, filepath: string): boolean {
|
|
return minimatch(filepath, pattern, { dot: true })
|
|
}
|
|
}
|