| 12345678910111213141516171819202122232425262728293031323334 |
- 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 })
- }
- }
|